我创建了一个单文档MFC程序, 然后我在上面加了一个动态按钮
具体过程是
1:新建按钮类 class CBmpBtn : public CButton
2:重载Create函数
3:重载DrawItem函数
这些都没有问题,动态按钮也都正常显示了。
然后我在CBmpBtn类中添加了鼠标左键按下的消息响应函数OnLButtonDown()可是我发现程序运行之后,除了点击最上面的标题栏,点其他任何地方都回进入这个按钮类的OnLButtonDown ,然后我试了在程序的视图类C***view类中添加OnLButtonDown()也是一样的情况,请大家解释下!谢谢了。消息机制我不是很懂
具体过程是
1:新建按钮类 class CBmpBtn : public CButton
2:重载Create函数
3:重载DrawItem函数
这些都没有问题,动态按钮也都正常显示了。
然后我在CBmpBtn类中添加了鼠标左键按下的消息响应函数OnLButtonDown()可是我发现程序运行之后,除了点击最上面的标题栏,点其他任何地方都回进入这个按钮类的OnLButtonDown ,然后我试了在程序的视图类C***view类中添加OnLButtonDown()也是一样的情况,请大家解释下!谢谢了。消息机制我不是很懂
想看看你的代码。
刚才试验了一下!响应按钮的OnLButtonDown 时,不响应View的OnLButtonDown了。 太奇怪了。 代码不多 但是分散,不好贴啊 兄弟
[email protected]
我还有个问题
LRESULT CMainFrame::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
// TODO: 在此添加专用代码和/或调用基类
switch(message)
{
case WM_ACTIVATE:
{ }
哪些情况会引起WM_ACTIVATE这个消息到来,是不是只要是主框架上面的窗口空间被激活或者失活都会引发? 是不是主框架可以接收MFC的所有消息?
单文档中mainframe 包括 view, 工具兰,menu,状态栏 这些吗?
LRESULT CMainFrame::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
// TODO: 在此添加专用代码和/或调用基类
switch(message)
{
case WM_ACTIVATE: { }
哪些情况会引起WM_ACTIVATE这个消息到来,是不是只要是主框架上面的窗口控件(比如view,btn等)被激活或者失活都会引发WM_ACTIVATE这个消息? 是不是主框架可以接收MFC的(包括主框架上面的view,bar,menu等等)所有消息?
楼主上面说的消息基本在框架都可以接收到