关于CListBox如何把消息映射到CMainFrame中去(前提是CListBox的父类不能是CMainFrame),

wflishh 2008-05-15 06:17:16
情况大概如题,
我是利用一个一框架来放CListBox,而是想在CMainFrame能处理ClistBox的LBN_SELCHANGE及LBN_DBLCLK消息。
如果我把CListBox的父类改为CMainFrame是能成功的处理这两个消息的。
但是为了界面的美观我不得不使用一个框架。CToolBar m_wndToolBar;和CCoolTabCtrl m_TabCtrl;CListBox m_ctrlListID;这三个都是CMainFrame的成员。
它们之间的关系如下:
m_wndToolBar.Create(_T("我的控制条"), this, CSize(230,260),TRUE,123);//此this 是CMainFrame
m_TabCtrl.Create(TCS_DOWN|WS_CHILD|WS_VISIBLE,CRect(0,0,100,100),&m_wndToolBar,125);
    m_ctrlListID.Create(WS_CHILD|WS_VISIBLE|LBS_NOTIFY|TVS_HASLINES|TVS_HASBUTTONS,CRect(0, 0, 0, 0), &m_TabCtrl, IDC_LISTBOX_ID);
m_TabCtrl.AddPage(&m_ctrlListID,"VCggh",IDI_ICON1);
有个奇怪的事情是如果我用把CListBox换成CTreeCtrl在CMainFrame中进行消息映射它们的关系和上面的一样
结果就能正确的处理CTreeCtrl的消息,但是试了多次CListBox却不行。
请求高人指点
...全文
59 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wflishh 2008-05-24
  • 打赏
  • 举报
回复
问题总算解决了。要响应WM_COMMAND消息,让其框架自动上发给它的父窗口。这样一步一步传。最后到CMainFrame,谢谢大家。
菜牛 2008-05-16
  • 打赏
  • 举报
回复
你可以用SetOwner设置控件的所有者为框架。
wflishh 2008-05-16
  • 打赏
  • 举报
回复
SetOwner不得,试了一下。不行。
wflishh 2008-05-15
  • 打赏
  • 举报
回复
只能这个样子吗?那为什么同样的CTreeCtrl就可以呀?
cnzdgs 2008-05-15
  • 打赏
  • 举报
回复
那就重载父控件的WindowProc来转发。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧