我想在程序中响应鼠标双击事件,并能响应时获得所双击的item的序号,我已添加了如下的消息处理函数,但不知道该如何处置。请问如何实现?谢谢!
void CTest4View::OnDblclk(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here *pResult = 0;
}
void CTest4View::OnDblclk(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here *pResult = 0;
}
解决方案 »
- socket 不通过路由器做映射连接失败的问题
- 如何枚举一个进程的所有内存块
- 请教CControlButton按钮显示边框问题
- 一个忧闷的问题!!!请高人点拨!!
- AfxBeginThread的问题 : none of the 2 overloads can convert ……??
- 求经典界面问题的答案:修改CScrollBar的颜色。
- 关于ActiveX中动态调用dll遇到的问题????????
- 寻找kingwill(上海_周凯).
- 想在进入一个自定义的对话时播放指定位置的一段WAV音乐,请问在什么地方最合适?
- 谁能解释色彩平面的概念?
- 如何加进自己的位图
- 我用OpenGL画50万个正方体(是根据给出的中心点找出四角的坐标)这些正方体组成一个大的正方体如何合并顶点
{
UINT uFlags = 0;
CListCtrl& ListCtrl = GetListCtrl();
int nHitItem = ListCtrl.HitTest(point, &uFlags);
...
}nHitItem即为双击之item
example:
void CTest4View::OnLButtonDblClk(UINT nFlags, CPoint point)
{
UINT uFlags = 0;
CListCtrl& ListCtrl = GetListCtrl();
int nHitItem = ListCtrl.HitTest(point, &uFlags); if (uFlags & LVHT_ONITEMLABEL)
{
// here is the effective nHitItem
// your code that processes the item doubleclicked
// should be here
}
...
}
取序号,CListCtrl::GetCurSel(好象是这个,最好查查MSDN)
{
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
int nHitItem = pNMLV->iItem ; ...... // nHitItem即为双击之item
}
if(nHitItem >=0)
{
//点中了item,操作...
}
{
// TODO: Add your control notification handler code here
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
int nItem = pNMListView->iItem; // 这就是双击的item的序号
int nSubItem = pNMListView->iSubItem; // 这是对应的子项号 CListCtrl& theCtrl = GetListCtrl(); // 取得对应的列表控件 // 下面获得该子项的文本内容
CString sText = theCtrl.GetItemText(nItem, nSubItem); *pResult = 0;
}
riverboat(诸葛不亮) 的方法也不行。试试就知道了。
可以这样:
将pNMListView中的ptAction,取出,然后进行subItemHitTest,然后可以同时得到item和iSubItem.