作者:连向明 | 来源:互联网 | 2023-01-22 13:39
在CMainFrame::OnCreate中通过下列语句创建了一个CListViewCtrl控件:m_filetree.Create(m_dock,rcDefault,NULL,13423
在CMainFrame::OnCreate中通过下列语句创建了一个CListViewCtrl控件:
m_filetree.Create( m_dock, rcDefault, NULL, 1342373943, 516 );
m_filetree.SetDlgCtrlID(ID_FILE_LIST); //#define ID_FILE_LIST 6666666
m_filetree.SetWindowText( _T("文件表") );
其中m_fileReport为CListFormImpl类型的派生类 对象
class CListFormImpl :
public CWindowImpl,
public CCustomDraw
在BEGIN_MSG_MAP(CMainFrame) 中消息映射宏NOTIFY_HANDLER(ID_FILE_LIST,LVN_COLUMNCLICK,NotifyHandler)
NotifyHandler函数的声明为LRESULT NotifyHandler(int idCtrl, LPNMHDR pnmh, BOOL& bHandled);
但是当用鼠标点击m_fileReport对应列表的列时,却进入不了函数NotifyHandler
14 个解决方案
在view里相应试试
Frame
doc
view
有个响应顺序,从下往上,注意return的0或1
把ID改小一些,不要超过65535。
用SPY++监视一下消息,看看是否正常。
这些用wizzard自动生成为好,不要自己手工添加
你可以把代码发给我,gw_net@163.com
我帮你调一下
你可以在CListFormImpl类里面用
REFLECTED_NOTIFY_CODE_HANDLER(LVN_COLUMNCLICK, OnColumnClick)
这样就不用管父窗口是谁了,都是反射给它自己处理的