我继承了CListCtrl->CMyListCtrl,在CMyListCtrl中可以接收鼠标右键消息弹出一个菜单,但是始终接收不了菜单命令,菜单命令好像只能由控件的父窗口(对话框)来接收,我是用ON_COMMAND(POPUP_MENU_ID_OUTPUT, OnCmdOutput)来接收的,但是始终OnCmdOutput函数都没有调用,请问这样写有问题吗?

解决方案 »

  1.   

    是用TrackPopupMenu吗? 
    不一定是要父窗体来接收, 注意TPM_NONOTIFY属性
    ON_COMMAND宏的第一个参数是菜单具体某项的IDMSDN原话
    If you specify TPM_NONOTIFY in the uFlags parameter, the function does not send messages to the window identified by hWnd. However, you must still pass a window handle in hWnd. It can be any window handle from your application. 
      

  2.   

    是用CMenu.TrackPopupMenu,但是nFlags里没有TPM_NONOTIFY这个属性啊
      

  3.   

    TrackPopupMenu的第四个参数制定的哪个CWnd来接收消息的。