假设我的工程名字叫做ContextMenu,按照MFC的AppWizard生成一个单文档的应用程序。到类视图下可以看到如下几个类:
CAboutDlg,用于About对话框的对话框类;CContextMenuApp类,整个程序的CWinApp类CContextMenuDoc类,文档类;CContextMenuView 视图类;CMainFrame 框架类;
选中CContextMenuView类,右键单击->Add windows message handler 则弹出对话框。在对话框的左侧列表部分选择WM_CONTEXTMENU消息 然后点击右侧的 Add Handler 按钮,会看见中间部分加上了这个消息。接下来点击Edit Existing按钮,
在Edit Existing所指的函数中加入,如下代码:
CMenu menu; // 装入菜单
menu.LoadMenu(IDR_MAINFRAME);// 显示菜单 IDR_MAINFRAME为Resource中Menu的ID。
menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON|TPM_RIGHTBUTTON
,point.x,point.y,this);
执行程序后,右键点击其中间的试图,会出现菜单。
CAboutDlg,用于About对话框的对话框类;CContextMenuApp类,整个程序的CWinApp类CContextMenuDoc类,文档类;CContextMenuView 视图类;CMainFrame 框架类;
选中CContextMenuView类,右键单击->Add windows message handler 则弹出对话框。在对话框的左侧列表部分选择WM_CONTEXTMENU消息 然后点击右侧的 Add Handler 按钮,会看见中间部分加上了这个消息。接下来点击Edit Existing按钮,
在Edit Existing所指的函数中加入,如下代码:
CMenu menu; // 装入菜单
menu.LoadMenu(IDR_MAINFRAME);// 显示菜单 IDR_MAINFRAME为Resource中Menu的ID。
menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON|TPM_RIGHTBUTTON
,point.x,point.y,this);
执行程序后,右键点击其中间的试图,会出现菜单。