创建一个CComboBox,当鼠标右键点击其中的编辑框时,我想弹出一个自定义菜单。
但是要如何截获右键点击的消息?
CComboBox的WM_RBUTTONDOWN消息只对右边的下拉按钮有效。

解决方案 »

  1.   

    测试了一下。响应PreTranslateMessage事件,在CComboBox右键点击编辑框时,此时用GetDlgCtrlID(pMsg->hwnd)得到的控件ID号为1001,可我打开resource.h,却没有一个资源号是1001的。晕那。
      

  2.   

    ComboBox是由一个ComboBox和一个Edit组成的,楼主用Spy++看看就知道了。
    所以可以处理那个Edit的RBUTTONDOWN试试。
      

  3.   

    问题已经解决,从CEdit派生一个自己的Edit控件CMyEdit,再从CComboBox派生一个自己的ComboBox控件CMyCombo,其中定义一个CMyEdit的对象m_edtMy,然后在ComboBox的OnCreate()中使用m_edtMy.SubClassDlgItem(1001, this);
    即可.
      

  4.   

    OnContextMenu(CWnd* pWnd, CPoint point) 
    {
    // TODO: Add your message handler code here CMenu menu;
    VERIFY( menu.LoadMenu( IDR_MAINFRAME ) );
    CMenu* popup = menu.GetSubMenu(2);
    ASSERT( popup != NULL );
    popup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this ); }
    我觉的这个比较简单~