我用VS2008新建了一个MFC单文档的工程,给我自动生成了两个可停靠的面版,我想就直接在里面进行操作,有一个面版名字叫CClassView,他是一个由Cpane派生出来的类,这个类里面有个CTreeView的变量,由他创建了一个树型控件显示在这个窗口上面。
我的问题是,我知道CClassView不是由CTreeView派生来的,正常来讲是得不到一些OnSelectChange之类的Tree控件专有的消息。但是我在Vs2008里面由工具添加的鼠标单击和双击消息一个都不响应,这是为什么呢?里面只响应自动生成的WM_CONTEXTMENU消息。我的要求就是需要响应双击消息,当然如果能响应到Tree控件里面的消息更好
我的问题是,我知道CClassView不是由CTreeView派生来的,正常来讲是得不到一些OnSelectChange之类的Tree控件专有的消息。但是我在Vs2008里面由工具添加的鼠标单击和双击消息一个都不响应,这是为什么呢?里面只响应自动生成的WM_CONTEXTMENU消息。我的要求就是需要响应双击消息,当然如果能响应到Tree控件里面的消息更好
解决方案 »
- 控件随着对话框缩放问题
- MFC中定义INT_PTR之类的用意是什么
- LNK2019: 无法解析的外部符号 "__declspec(dllimport).... 具体差些什么
- TabControl控件的问题
- class A和class B之间的函数相互调用????
- 关于Datagrid的问题
- 怎么在dll与vb之间传递字符串。高手救命啊~~~~!在线等。急急!!
- 使用ado当字段值为空时如何处理?
- 关于重复使用已建好的对话框??
- 有关DIRECTX编程
- 如何取消CListCtrl选种后蓝色高亮条显示?
- USE MFC in a Shared DLL 和 USE MFC in a Static Library 有什么区别?
如果是这样的话,那你的CClassView的所有鼠标事件都会被CTreeView变量窗口劫持。你最好的方法就是把你的CTreeView创建的窗口变得小一点,让CClassView露出部分区域,然后在测试你的代码;
究竟是CClassView不响应还是CTreeView不响应。如果是CTreeView,那你应该吧事件响应的代码放在CClassView,也就是它的父窗体中去实现。
我用xsc2001 提供的方法实现了对控件双击的响应,用***.GetSelectedItem()来找出哪项目被选中,可以使用
只是可惜下面这个方面获取选中项目获取不到,没成功 NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
HTREEITEM hSelected = pNMTreeView->itemNew.hItem; //当前选项
HTREEITEM hOldSelected = pNMTreeView->itemOld.hItem; //原来选项