我继承一个CListCtrl来支持Drag&Drop. 我让这个CListCtrl做Drag的source,然后改写OnLButtonDown方法代码如下
afx_msg void CDragListCtrlBase::OnLButtonDown(UINT nFlags, CPoint point)
{
CListCtrl::OnLButtonDown(nFlags, point);
CArray<void*> arrayDrag;
POSITION pos = GetFirstSelectedItemPosition();
while(pos){
int nItem = GetNextSelectedItem(pos);
arrayDrag.Add(GetDragItem(nItem));
}
...但是这样我的LButtonDblClk就捕捉不到了。然后在上面的方法我去掉"CListCtrl::OnLButtonDown(nFlags, point);",LButtonDblClk就能用了。
但是没有"CListCtrl::OnLButtonDown(nFlags, point);",好像就没有选中的Item。而且在这个CListCtrl所在的Dialog,我还想抓NM_CLICK,如果去掉了那行代码,这个也抓不到了。高人有什么方法可以搞定这个问题啊,多谢多谢
afx_msg void CDragListCtrlBase::OnLButtonDown(UINT nFlags, CPoint point)
{
CListCtrl::OnLButtonDown(nFlags, point);
CArray<void*> arrayDrag;
POSITION pos = GetFirstSelectedItemPosition();
while(pos){
int nItem = GetNextSelectedItem(pos);
arrayDrag.Add(GetDragItem(nItem));
}
...但是这样我的LButtonDblClk就捕捉不到了。然后在上面的方法我去掉"CListCtrl::OnLButtonDown(nFlags, point);",LButtonDblClk就能用了。
但是没有"CListCtrl::OnLButtonDown(nFlags, point);",好像就没有选中的Item。而且在这个CListCtrl所在的Dialog,我还想抓NM_CLICK,如果去掉了那行代码,这个也抓不到了。高人有什么方法可以搞定这个问题啊,多谢多谢
解决方案 »
- CreateFile 访问磁盘失败,错误代码5,拒绝访问
- 关于unicode
- 请教列表修改
- 给文档窗口加滚动条...........(50++)
- 一个学期设计任务(学生信息管理系统)正在学习的可以来试试
- 问大家一个关于类型转换的问题~急
- CAboutDlg,CMainFrame,CPP1App,CPP1Doc,CPP1View,这些类都各是有什么用?
- 怎么得到系统中的最小化,最大化,关闭,和图标的位置??
- CListCtrl Icon SetItemPosition 有滚动条的时候就不好用了,是为什么呢
- 那里有电子版可以down"精通VisualC++图像编程"这本书?
- 关于Create产生的非模态对话框
- 关于回车键换行的问题?
http://www.codeproject.com/KB/list/dragtest.aspx
如果需要,你可以自己根据鼠标的点击情况判断双击,并发送NM_DBLCLK通知;也可以去掉那行代码,自己SetItemState,并发送NM_CLINK通知。