1 / 3
文档名称:

快捷菜单.docx

格式:docx   页数:3
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

快捷菜单.docx

上传人:yunde113 2014/10/17 文件大小:0 KB

下载得到文件列表

快捷菜单.docx

文档介绍

文档介绍:快捷菜单
Windows95和Windows 。在任何一个对象上按鼠标右键,就会弹出一个与所选当前对象相关的菜单,菜单中列出了一组针对当前对象的操作。在Visual Studio中就有大量这样的菜单。比如,在项目工作区中单击右键时弹出菜单,让用户选择Docking View(停泊视图)、Hide(隐藏)和Properties(属性)操作。现在我们来讨论如何使用Visual C++为应用程序增加右键菜单。
这里我们也不是手工编程,而是使用Visual ponent Gallery(组件画廊)向框架窗口添加快捷菜单。 。选择Project->Add to Project->Component and Controls菜单,ponent and Controls Gallery对话框,选择Developer ponents目录,在该目录下选择Popup Menu构件,如图3-15所示。
图3-15
按Insert按钮。弹出Poup Menu对话框,在Add popup menu to下拉列表框中选择CMainFrame,点OK按钮,关闭Popup Menu对话框。ponent and Controls Gallery对话框。编译运行Hello,弹出窗口后按右键,就弹出如图3-16所示的快捷菜单。菜单中包含三项:cut、copy、paste。因为没有对应的消息矗立函数,所有这些菜单都是灰色的、非活动的。
图 3-16
现在,ponent Gallery是如何实现快捷菜单的。ponent Gallery在其中增加了一个ID为CG_IDR_POPUP_MAIN_FRAME的菜单,菜单中包含了刚才我们看到的三个菜单项:cut、copy、paste。切换到类视图,浏览CMainFrame类,可以看到CMainFrame增加了一个OnContextMenu的成员函数,它是CWnd的一个方法,用于处理鼠标右键单击消息,原型如下:
afx_msg void OnContextMenu(CWnd* pWnd,CPoint point);
其中pWnd指向右键单击的窗口,它可以是一个本窗口的一个子窗口。比如,我们在工具条上单击右键时也弹出同样的菜单,工具条就是框架窗口的一个子窗口。。
右键菜单
void CMainFrame::OnContextMenu(CWnd*, CPoint point)
{
// CG: This block was added by the Pop-up ponent
{
if ( == -1 && == -1){
//如果是键盘激活的快捷菜单,则在窗口左上角5,5的位置显示快捷菜单
CRect rect;
GetClientRect(rect);
ClientToScreen(rect);
point = ();
(5, 5);
}
//载入快捷菜单资源
CMenu menu;
VERIFY((CG_IDR_