在CMainFrame::OnCreate中通过下列语句创建了一个CListViewCtrl控件
m_fileReport.Create( m_dock, rcDefault, 0, 0, LVS_EX_FULLROWSELECT|LVS_REPORT );
    m_fileReport.SetDlgCtrlID(ID_FILE_LIST); 
    m_fileReport.SetWindowText( _T("文件") );
    m_dock.AddWindow( m_fileReport );
    m_dock.DockWindow( m_fileReport, DOCK_BOTTOM );其中m_fileReport为CListFormImpl类型的派生类 对象
class CListFormImpl : 
    public CWindowImpl<CListFormImpl, CListViewCtrl, CListTraits>,
    public CCustomDraw<CListFormImpl>
通过以下几种方式都试过了,始终响应不了LVN_COLUMNCLICK
1、在CMainFrame的BEGIN_MSG_MAP(CMainFrame) 中消息映射宏
    NOTIFY_HANDLER(ID_FILE_LIST,LVN_COLUMNCLICK,NotifyHandler)
2、CListFormImpl类里面用REFLECTED_NOTIFY_CODE_HANDLER(LVN_COLUMNCLICK, OnColumnClick)3、怀疑是控件风格问题,更改了控件的风格以上几种方式都试过了,就是响应不了这问题纠结几点了,急需高人指点。如果可以的话,也可以把工程发给你,帮忙调试下。不胜感激!!!

解决方案 »

  1.   

    LVN_COLUMNCLICK是通知给父窗口的。从你创建的代码看,父窗口是 m_dock, 应当在 m_dock窗口响应该消息
      

  2.   

    由 m_dock 在转发给 主窗口,或者是 控件 CListFormImpl 
      

  3.   


    我应该试过这种方法另外如果 在CListFormImpl类里面用REFLECTED_NOTIFY_CODE_HANDLER(LVN_COLUMNCLICK, OnColumnClick),好象就跟谁是父窗口没关系了,不还是调不到其响应函数
      

  4.   


    如何转?用CHAIN_MSG_MAP吗?可能不是有可能的话,能帮我看看代码吗
      

  5.   

    楼主确定点了头控件但收不到 LVN_COLUMNCLICK ?