解决方案 »
- 下面程序为什么报memset重复定义的错误???
- 关于飞信自启动的问题,新手求解
- 单文档C**View中添加CMyButton无响应?
- 在没有安装SQL2008的机器中如何使用SQL2008的数据库?
- View类下的颜色菜单实现弹出颜色对话框选择颜色来改变文字颜色
- dll通过指针访问调用者程序中的函数的问题?
- 急:高分求使用DLL注入屏蔽Ctrl+Alt+Del代码(不用GINA)?
- 我写的一个粒子系统屏保,大家看看不?其中有些技术问题,希望和大家讨论讨论。
- 怎么样在登录界面写验证用户名和密码的代码?用vc和sql 急!
- 关于delete
- win2000或NT下NetShareAdd的问题
- 哪里有programming windows95可以下?多谢!
int CALLBACK CompareFunc(LPARAM lParam1, LPARAM lParam2,
LPARAM lParamSort);
SortItems(CompareFunc,para);SortItems会用你回调函数指定的规则排序的,很简单.
MyCompareProc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
{
// lParamSort contains a pointer to the list view control.
// The lParam of an item is just its index.
CListCtrl* pListCtrl = (CListCtrl*) lParamSort;
CString strItem1 = pListCtrl->GetItemText(lParam1, 0);
CString strItem2 = pListCtrl->GetItemText(lParam2, 0); return strcmp(strItem2, strItem1);
}void snip_CListCtrl_SortItems()
{
// The pointer to my list view control.
extern CListCtrl* pmyListCtrl; // Sort the list view items using my callback procedure.
pmyListCtrl->SortItems(MyCompareProc, (LPARAM) pmyListCtrl);
}
但是奇怪的是不起作用
sigh
不知是不是要装service pack。
查了半天文档才发现,原来回调函数的参数是插入
item时的lparam值……而不是
item的索引……郁闷。
在LV_COLUMNCLICK(好像是)事件里调用sortitems方法吧。static int CALLBACK
MyCompareProc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
{
// lParamSort contains a pointer to the list view control.
// The lParam of an item is just its index.
CListCtrl* pListCtrl = (CListCtrl*) lParamSort;
CString strItem1 = pListCtrl->GetItemText(lParam1, 0);
CString strItem2 = pListCtrl->GetItemText(lParam2, 0); return strcmp(strItem2, strItem1);
}void snip_CListCtrl_SortItems()
{
// The pointer to my list view control.
extern CListCtrl* pmyListCtrl;
int i;
for (i=0;i<pmyListCtrl->GetItemCount();i++) {
pmyListCtrl->SetItemData(i,i);
}
// Sort the list view items using my callback procedure.
pmyListCtrl->SortItems(MyCompareProc, (LPARAM) pmyListCtrl);
}