从CButton类派生了类CButton1,再从CButton1派生了CButton2,为CButton2添加了菜单,并为菜单项添加ON_COMMAND的消息处理函数,在运行过程中却发现消息处理函数未调用,不知是为何?

解决方案 »

  1.   

    为按钮添加菜单?按钮类无法处理 COMMAND 消息吧
      

  2.   

    应该是可以的,你参考一下自定义的RichEdit控件的菜单处理:
    http://www.vckbase.com/document/viewdoc/?id=328
      

  3.   

    和vcleaner说的好像不一样,那个例子好像也没什么特别,我在调过程中好像发现,点击这个菜单的菜单项,根本就没触发消息
      

  4.   

    我查过一个菜单处理函数的调用堆栈:
    CMyClass::OnMyFunc...
    CCmdTarget::OnCmdMsg...
    CWnd::OnCommand...
    CWnd::OnWndMsg...
    CWnd::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
    AfxCallWndProc(CWnd* pWnd, HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
    AfxWndProc(CWnd* pWnd, HWND hWnd, UINT nMsg, wParam, lParam)
    AfxWndProcBase(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)我在AfxWndProcBase函数中设置条件断点,条件为nMsg=WM_COMMAND, wParam=ID_MENUITEM
    但断点未被触发,如果直接调用这个函数,那么菜单的那个处理函数会被调用,所以应该来说未对鼠标
    点击菜单项的事件调用AfxWndProcBase
      

  5.   

    http://www.vckbase.com/english/code/buttonctrl/menu_button.shtml.htm
      

  6.   

    不知哪个大侠知道,要使一个类能够处理菜单消息,需要什么样的条件?
    为菜单添加ON_COMMAND消息函数时,可以选择不同的类,但有些类可以经过消息路由,
    找到映射的处理函数,有些类却不行,这需要什么条件?
      

  7.   

    如果你想要用自己的类处理菜单消息,你就要在Windows窗口得到消息之前得到该消息,然后判断是否是自己要处理的消息,不是再传给Windows处理
      

  8.   

    好像本身就是要Winodows调用我的处理函数来处理吧,只是有时候它肯调用,有时它不肯调用