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 = ;
}

最新文章

  1. Double Dispatch讲解与实例-面试题
  2. 几款主流PHP框架的优缺点评比
  3. &lt;&lt;MySchool数据库设计优化&gt;&gt; 内部测试
  4. Android之ListView&amp;ViewPager模拟新闻界面
  5. Bridging signals hdu 1950 (最长上升子序列)
  6. 转载JQuery 获取设置值,添加元素详解
  7. 虚拟机IOS开发环境搭建教程
  8. oracle ebs 分类账与法人主体对应关系
  9. cmstop中实例化controller_admin_content类传递$this,其构造方法中接收到的是--名为cmstop的参数--包含cmstop中所有属性
  10. 安卓自定义控件(二)BitmapShader、ShapeDrawable、Shape
  11. Java简单介绍及Java生态
  12. JAVA&#160;JVM常见内存参数配置简析
  13. 如何ASP.NET Core Razor中处理Ajax请求[转载]
  14. js单双引号
  15. overture里设置踏板标记
  16. 消息中间件及WebSphere MQ入门(转载)
  17. Python Django框架笔记(二):创建应用和django 管理
  18. storage路径问题
  19. hdu-1140(求距离,精度判断)
  20. excel 技能收集

热门文章

  1. Python+Selenium练习篇之7-利用name定位元素
  2. Leetcode 593.有效正方形
  3. JAVA与VB通过SOCKET通讯
  4. POJ 3111 K Best(01分数规划)
  5. SPOJ 10628 Count on a tree(Tarjan离线 | RMQ-ST在线求LCA+主席树求树上第K小)
  6. codechef May Challenge 2016 LADDU: Ladd 模拟
  7. 代码怎样重构&lt;1&gt;
  8. 气象城市ID列表
  9. 反射的基本使用以及原理(Class获取方式)
  10. 02深入理解C指针之---指针类型和值