VS2010 MFC中 使用CListCtrl的排序功能
2024-10-20 05:34:07
list 控件是creat的,不是拖在对话框上的。想使用CListCtrl的排序功能却犯了愁~~~
还好找到方法,如下:
.h文件里:afx_msg void OnLvnColumnclickList1(NMHDR *pNMHDR, LRESULT *pResult);
.cpp文件里:
消息映射如下:
ON_NOTIFY(LVN_COLUMNCLICK,IDS_RECRODSWND, &CViewList::OnLvnColumnclickList1)
具体实现:
// 排序用的比较函数
static int CALLBACK MyCompareProc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
{
CString &lp1 = *((CString *)lParam1);
CString &lp2 = *((CString *)lParam2);
int &sort = *(int *)lParamSort;
if (sort == )
{
return lp1.CompareNoCase(lp2);
}
else
{
return lp2.CompareNoCase(lp1);
}
} //排序处理代码
void CViewList::OnLvnColumnclickList1(NMHDR *pNMHDR, LRESULT *pResult)
{
//获取CMainFrame对象
static CMainFrame* pMain = (CMainFrame *)AfxGetMainWnd();
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
int Length = pMain->m_wndRecDetail.m_RecordsList.GetItemCount();
CArray<CString,CString> ItemData;
ItemData.SetSize(Length);
for (int i = ; i < Length; i++)
{
ItemData[i] = pMain->m_wndRecDetail.m_RecordsList.GetItemText(i,pNMLV->iSubItem);
pMain->m_wndRecDetail.m_RecordsList.SetItemData(i,(DWORD_PTR)&ItemData[i]); //设置排序关键字
}
static int sort = ;
static int SubItem = ;
if (SubItem != pNMLV->iSubItem)
{
sort = ;
SubItem = pNMLV->iSubItem;
}
else
{
if (sort == )
{
sort = ;
}
else
{
sort = ;
}
}
pMain->m_wndRecDetail.m_RecordsList.SortItems(MyCompareProc,(DWORD_PTR)&sort);//排序
*pResult = ;
}
最新文章
- Double Dispatch讲解与实例-面试题
- 几款主流PHP框架的优缺点评比
- <;<;MySchool数据库设计优化>;>; 内部测试
- Android之ListView&;ViewPager模拟新闻界面
- Bridging signals hdu 1950 (最长上升子序列)
- 转载JQuery 获取设置值,添加元素详解
- 虚拟机IOS开发环境搭建教程
- oracle ebs 分类账与法人主体对应关系
- cmstop中实例化controller_admin_content类传递$this,其构造方法中接收到的是--名为cmstop的参数--包含cmstop中所有属性
- 安卓自定义控件(二)BitmapShader、ShapeDrawable、Shape
- Java简单介绍及Java生态
- JAVA&#160;JVM常见内存参数配置简析
- 如何ASP.NET Core Razor中处理Ajax请求[转载]
- js单双引号
- overture里设置踏板标记
- 消息中间件及WebSphere MQ入门(转载)
- Python Django框架笔记(二):创建应用和django 管理
- storage路径问题
- hdu-1140(求距离,精度判断)
- excel 技能收集
热门文章
- Python+Selenium练习篇之7-利用name定位元素
- Leetcode 593.有效正方形
- JAVA与VB通过SOCKET通讯
- POJ 3111 K Best(01分数规划)
- SPOJ 10628 Count on a tree(Tarjan离线 | RMQ-ST在线求LCA+主席树求树上第K小)
- codechef May Challenge 2016 LADDU: Ladd 模拟
- 代码怎样重构<;1>;
- 气象城市ID列表
- 反射的基本使用以及原理(Class获取方式)
- 02深入理解C指针之---指针类型和值