在mfc对话框工程中采用了listctrl控件,需要点击控件列头,实现控件内容的自动排序,方法如下。
假设listctrl控件已经添加了控制变量 CListCtrl m_ListCtrl。
1、在.h文件中添加
public:
int sort_column; // 表示需要排序的列
static bool method; //类内申明
static int CALLBACK listCompare(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort);
其中,method表示是升序还是降序,这是一个static变量。
2、设置排序规则。值得注意的是,这里根据列头的内容可能需要设置不同的排序规则。
在.cpp函数中添加:
bool CFeatureData::method = false; // 类外定义
int CALLBACK CFeatureData::listCompare(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
{
DATA* pListCtrl =