从CListCtrl派生一个类,响应NM_CLICK消息如下:BEGIN_MESSAGE_MAP(CListCtrlEx, CListCtrl)
//{{AFX_MSG_MAP(CListCtrlEx)
ON_NOTIFY_REFLECT(NM_CLICK, OnClick)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()在OnClick()函数中用GetFirstSelectedItemPosition()函数和GetItemText()来得到选中的item的string就可以知道用户点了那一项了
//{{AFX_MSG_MAP(CListCtrlEx)
ON_NOTIFY_REFLECT(NM_CLICK, OnClick)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()在OnClick()函数中用GetFirstSelectedItemPosition()函数和GetItemText()来得到选中的item的string就可以知道用户点了那一项了
解决方案 »
- 对话框上有两个CSliderCtrl控件,我如何通过对话框消息ON_WM_CTLCOLOR映射来判断那个滑动条触发的
- 关闭对话框
- 主程序里面有cpropertysheet,dll里面有cpropertypage,如何加载进来?
- 数据库冲突问题
- 为何不能观看flash?
- 在CView中如何得到CMainFrame的指针呢?狂送分
- 关于网线的制做问(这里人多再试试吧)
- 请问:如何在NT下调用HTML HELP(即chm格式文件)
- 串口接收到的数据出现移位的原因
- 为什么运行VCVARS32.BAT时总是提示"Out of environment space"?如何解决?
- 关于cjlibary库中的CJShellList和CJShellTree的问题!
- 为什么我的DLL,ole查看器里看不到呢?
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
if(m_myListCtrl.GetFirstSelectedItemPosition())
{
...//your code
} *pResult = 0;
}
为什么不用
void CMyList::OnLButtonUp(UINT nFlags, CPoint point)
{
BOOL i;
m_CurSel=this->ItemFromPoint(point,i);
CListBox::OnLButtonUp(nFlags, point);
}
简单\明了\正确.
你可以响应HDN_ITEMCHANGED消息。例程如下:
void CYourDlg::OnItemchangedYourList(NMHDR* pNMHDR, LRESULT* pResult)
{
HD_NOTIFY *phdn = (HD_NOTIFY *) pNMHDR;
// TODO: Add your control notification handler code here
NM_LISTVIEW* pNMListView=(NM_LISTVIEW*)pNMHDR;
int nSelected=pNMListView->iItem;
if(nSelected>=0)//nSelected就是选中的Item的序号
{
text=m_ContentList.GetItemText(nSelected,0);
………
} *pResult = 0;
}
int nSelected=pNMListView->iItem;
返回仍是这样么?