编译联接均无问题,执行时也可以调用到排序回调函数但是发现回调函数的前两个参数(要比较的两项)传入为0,但第3个参数是正确的,请问什么原因?该如何解决?代码如下:定义排序回调函数
int CALLBACK CRealTimeView::RealTimeViewCompareProc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
{
CItem *pItem1 = (CAlarmItem*)lParam1;
CItem *pItem2 = (CAlarmItem*)lParam2;
int iResult = 0;
.....
.....
.....
return iResult;
}创建LVN_COLUMNCLICK消息响应函数
void CAlarmRealTimeView::OnColumnclick(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
CListCtrl& m_lst = GetListCtrl();
m_lst.SortItems(CRealTimeView::RealTimeViewCompareProc, pNMListView->iSubItem);
m_SelectItem = -1;
switch (pNMListView->iSubItem) {
case 0:
m_bSort0 = !m_bSort0;
break;
case 1:
m_bSort1 = !m_bSort1;
break;
case 2:
m_bSort2 = !m_bSort2;
break;
case 3:
m_bSort3 = !m_bSort3;
break;
case 4:
m_bSort4 = !m_bSort4;
break;
case 5:
m_bSort5 = !m_bSort5;
break;
case 6:
m_bSort6 = !m_bSort6;
break;
}
*pResult = 0;
}
int CALLBACK CRealTimeView::RealTimeViewCompareProc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
{
CItem *pItem1 = (CAlarmItem*)lParam1;
CItem *pItem2 = (CAlarmItem*)lParam2;
int iResult = 0;
.....
.....
.....
return iResult;
}创建LVN_COLUMNCLICK消息响应函数
void CAlarmRealTimeView::OnColumnclick(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
CListCtrl& m_lst = GetListCtrl();
m_lst.SortItems(CRealTimeView::RealTimeViewCompareProc, pNMListView->iSubItem);
m_SelectItem = -1;
switch (pNMListView->iSubItem) {
case 0:
m_bSort0 = !m_bSort0;
break;
case 1:
m_bSort1 = !m_bSort1;
break;
case 2:
m_bSort2 = !m_bSort2;
break;
case 3:
m_bSort3 = !m_bSort3;
break;
case 4:
m_bSort4 = !m_bSort4;
break;
case 5:
m_bSort5 = !m_bSort5;
break;
case 6:
m_bSort6 = !m_bSort6;
break;
}
*pResult = 0;
}
解决方案 »
- OnActive在什么时候被调用
- CcomboBox控件 组合框编辑问题
- 抓图的问题
- ★★★高分弱问★★★文件包含问题!!!
- 11位的手机号,怎么作为一个double型数据写到数据库中!
- 如何在COM中返回一个自定义的ToolBar指针?
- 用VFW实现视频预览
- 求助!本菜鸟只会VC,怎么混饭吃啊!!!!
- VC6.0中,由于计算需要,定义了过多的大数组造成系统内存不足怎么办???
- MFC做了简单界面,点击按钮调用matcom转化的m文件,运行出现:执行cl.exe时出现错误
- 关于基于对话框应用程序使用菜单的Setcheck()函数出现的问题
- 请问dll中的对话框类中如何访问dll中定义的函数,变量?
CItem *pItem2 = (CAlarmItem*)lParam2;
如果你没有SetItemData,又如何进行类型转换呢