VS2008中VC++添加快捷菜单

本文介绍如何在Visual Studio 2008中使用VC++创建自定义快捷菜单,包括添加菜单、设置菜单项属性及实现右键菜单的具体步骤与代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在VS2008中使用vc时候添加快捷菜单,首先利用资源管理器添加一个菜单:

                                                                                 

选择IDR_MENU1菜单,如下图:

                                                                           

具体代码如下:

         在窗体框架中添加

class MyFrame : public CFrameWnd
{
private:
	CMenu MainMenu, *SysMenu, *PopMenu, *SubMenu;
	COLORREF color;

public:
	MyFrame()
	{
		//构造函数
	}
	afx_msg void OnContextMenu(CWnd* pWnd, CPoint point)//主要实现函数
	{
		CMenu menu;

		menu.LoadMenu(IDR_MENU1);

		PopMenu = menu.GetSubMenu(0);

		//ClientToScreen(&point);
	
		PopMenu->TrackPopupMenu(TPM_CENTERALIGN | TPM_RIGHTBUTTON,
			point.x, point.y, this);
		menu.Detach();
	}

	DECLARE_MESSAGE_MAP()
};

BEGIN_MESSAGE_MAP(MyFrame, CFrameWnd)
	
	ON_WM_CONTEXTMENU()

END_MESSAGE_MAP()

class MyApp : public CWinApp
{
public:
	BOOL InitInstance()
	{
		CFrameWnd * Frame = new MyFrame;
		m_pMainWnd = Frame;
		Frame->ShowWindow(SW_SHOW);

		return true;
	}
}a_app;

        点击右键就可以显示出快捷菜单。                  

菜单项属性对话框:几组选项

ID(菜单项的ID):一般情况下,菜单的ID取值应遵循以下原则:ID_顶层菜单名_下一级菜单项名(_再下一级菜单项名)。如:ID_LOLOR_RED. 注:弹出菜单不需要ID号。

Caption(菜单项的名称):可以英文,中文,数字,符号等。注:用户可以在Caption文本框中定义某个菜单项的快捷键,在菜单标题中响应的字母前输入“&”即可。如果菜单是中文,就必须用小括号把快捷键的说明括起来,如:“新建”菜单项的快捷键使用“(&N)”定义。提示:Caption 文本框中还有一串字符“\tCtrl+N”,这是用来表明该菜单项的加速键。加速键可以在不打开菜单的情况下直接执行菜单项。

Separtor(分隔线)复选框:选中该复选框,则菜单项变成一个分隔线,而原有菜单项丢失。如果用户想在已添加一条分隔线,可以先用鼠标拖动空白菜单到需要分隔线的位置,然后将这个空白菜单选择【Separator】复选框即可。

Pop-up(弹出式)复选框:选择此复选框,菜单项将变成弹出式菜单,即单击此菜单会弹出下一级子菜单。Visual C++6.0 默认顶层菜单为弹出式菜单。

Inactive(不活动)复选框:选中此复选框表面菜单项的初始状态为非活动状态。

Checked(检查标记)复选框:此复选框是菜单初始值的检查标记。选择该复选框,会在菜单项的左边打上一个钩。

Grayed(变灰)复选框:选中此复选框,该菜单项将以灰色显示,表明菜单的初始状态为不可访问。如果该复选框被选中,那么菜单一定是不活动的,所以,此时Inactive复选框不可用。

Help(帮助形式)复选框:选中此复选框,菜单会出现在菜单栏的右侧。

Break(菜单项的分割):当一个菜单的菜单项过多时,放在一列当中会感觉很长很拥挤。此时可以考虑把他分成两列来显示。Break就起到了这个作用。Break选项对应一个组合框,共有三种选择形式,分别是None、Column和Bar。

None:系统默认选项,表示不分割。

Column:列分割。选中此项时,从选中的菜单项一下的菜单项将另起一行。例如,将【文件】菜单中的【打印】菜单项选中此项的结果。

并列格式:和Column类似,也是列分割。只不过与 Column不同的是,两列之间有一条竖线将他们隔开。

 文本框:在Prompt后面的文本框中可以输入文本。在程序运行时,当鼠标移到菜单项上时,在底部的状态栏将给出此菜单的功能提示。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值