我的对话框里有个ListView控件;
我设置了一个右键的通知消息NM_RCLICK,
在消息里,有一个弹出菜单,我要如何才能接收到这个弹出菜单的命令??大概代码如下:
LPNMITEMACTIVATE lpnmitem=(LPNMITEMACTIVATE)lParam;
if((lpnmitem->hdr).code==NM_RCLICK){
int nIndex=lpnmitem->iItem;
POINT point=lpnmitem->ptAction;
ClientToScreen(hCtrl,&point);
TrackPopupMenu(g_hMenu,TPM_RIGHTBUTTON,point.x,point.y,0,hCtrl,NULL);
}

解决方案 »

  1.   

    只需要给出提示即可,小弟主要是不知道如何着手茫茫MSDN......,
    伊人何在?...
      

  2.   

    是你自己抛弃他的, :) 你在 TrackPopupMenu 时指定接收菜单消息的窗口为 hCtrl。
    TrackPopupMenu(g_hMenu,TPM_RIGHTBUTTON,point.x,point.y,0,hCtrl,NULL);改hCtrl为GetSafeHwnd就行了,如果你弹出菜单代码是对话框的成员函数的话
    TrackPopupMenu(g_hMenu,TPM_RIGHTBUTTON,point.x,point.y,0,GetSafeHwnd(),NULL);此时你就可以在对话框中添加ON_COMMAND 来处理菜单命令了
      

  3.   

    hCtrl 估计是 listcontrol的句柄吧。
    设置成hCtrl要想处理菜单消息的,需要对该listControl进行子类化
      

  4.   

    可以了,
    hCtrl是ListView控件的句柄;
    我把那个句柄改成引进对话框的就OK了。
    TrackPopupMenu(g_hMenu,TPM_RIGHTBUTTON,point.x,point.y,0,hDlg,NULL);这样就可以用对话框的例程来接收来自快捷菜单Command命令了。