首先,要让CListCtrl能响应点击Column header的操作,方法是响应对应的LVN_COLUMNCLICK消息,然后在对应的消息处理函数中执行自己的排序。其方法是调用CListCtrl 类中的成员函数SortItems()函数,不过在调用之前,依据msdn的指示,一定要对所有需要排序的行调用CListCtrl的 SetItemData( int nItem, DWORD dwData )函数,一般的...
bol:为true为升序,为flase为降序, void CMFCApp_CFile_testDlg::CListCtrlShort(int rowInt,int ColInt, bool bol /= true/) { CListCtrl* pList = (CListCtrl)GetDlgItem(IDC_LIST1); myTongXiLu toxi1, toxi2; CString str1, str2; int n = 0; for (int i = 0; i<rowInt-1; i++) { to...
13、动态调整大小 有时由于不确定软件运行时的电脑屏幕大小,需要根据屏幕大小动态设置CListCtrl控件的大小。动态大小的设置时,需要注意不要将高度和宽度设置的超过区域限制,否则就没有滚动条了,导致部分内容无法查看。以我遇到的一个例子来说,其情况见第12节提到的那篇博文所述:将View划分为三个窗格,在左上角View上...
·CListCtrl提供了用于排序的函数 函数原型为: BOOL CListCtrl::SortItems( PFNLVCOMPARE pfnCompare, DWORD dwData); 其中第一个参数为全局排序函数(它就是回调函数)的地址, 第二个参数为用户数据,你可以根据你的需要传递一个数据或是指针。 该函数返回-1,代表第一项排应在第二项前面; ...
MFCCListCtrl控件使用总结整理 一、基本操作: 1. 创建CListCtrl实例,可以通过对话框资源添加控件或代码创建: ```cpp CListCtrl m_listCtrl; ``` 2.设置列表样式,例如设置为报表样式: ```cpp m_listCtrl.Create(WS_VISIBLE , WS_CHILD , LVS_REPORT, CRect(10, 10, 500, 300), this, IDC_LIST_CTRL); ...
在MFC应用程序中,可以通过拖拽方式或代码方式创建CListCtrl控件。拖拽方式是将CListCtrl控件拖拽到对话框上,然后在属性窗口中进行相应设置;代码方式是在对话框类的头文件中添加成员变量,并在OnInitDialog函数中进行初始化。 三、设置列表风格和列标题 在CListCtrl控件创建完成后,需要设置列表的风格和列标题。可以使用SetExten...
BOOL CListCtrl::SortItems( PFNLVCOMPARE pfnCompare, DWORD dwData); 其中第一个参数为全局排序函数(它就是回调函数)的地址, 第二个参数为用户数据,你可以根据你的需要传递一个数据或是指针。 该函数返回-1,代表第一项排应在第二项前面; 返回1代表第一项排应在第二项后面; ...
CListCtrl* lc = (CListCtrl*)lParamSort; CString lp1 = lc->GetItemText(row1,sort_column); CString lp2 = lc->GetItemText(row2,sort_column); // 比较,对不同的列,不同比较,注意记录前一次排序方向,下一次要相反排序 if (sort_column<2) ...
续第一篇:MFC总结之CListCtrl用法及技巧(一) http://blog.csdn.net/zwgdft/article/details/7560592 本篇重点介绍:禁止拖动表头、让第一列居中显示、设置行高与字体、虚拟列表技术、点击表头时进行归类、向上与向下移动、动态调整大小问题、避免闪烁问题。 6、禁止拖动表头 ...
但是 CListCtrl并没有自动排序的功能,我们需要自己添加一个用于排序的回调函数来比较两个数据的大小,此外还需要响应排序按钮被点击的消息。下面讲述一下具体的做法。其C 46、ListCtrl提供了用于排序的函数,函数原型为:BOOLCListCtrl:Sortltems( P FNLVCO MP ARE p fnCo mp are, DWORD dwData )中第一个参数为...