VC++加载用户自定义菜单及如何手动创建快捷菜单
1个回答
展开全部
在VC++中,将菜单加入到应用程序中:
加载用户自定义菜单
在框架类CMainFrame类的OnCreate函数中加载用户自定义的菜单。双击左侧工作区中CMainFrame类的OnCreate函数。编辑代码如下:
DockControlBar(&m_wndToolBar);
CMenu menu; //声明菜单对象
menu.LoadMenu(CG_IDR_POPUP_MY_VIEW); //黑色加粗为添加代码,括号内为自定义菜单名。
this-SetMenu(&menu); //设置自定义菜单替换现有菜单return 0;注:如果想创建级联菜单可选中Pop-up选项。
右键菜单的响应:
在View类中加入WM_RBOTTONDOWN的响应函数OnRButtonDown,在其中加入代码,如下:
CMenu menu; //定义菜单对象
menu.LoadMenu(IDR_MYMENU); //加载菜单资源,括号内为定义菜单名
CMenu *pSubMenu=menu.GetSubMenu(0); //取得第一个顶层菜单
ClientToScreen(&point); //转换坐标
pSubMenu-TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON,
point.x,point.y,GetParent()); //弹出菜单
CView::OnRBtuuonDown(nFlags,point);
菜单项属性对话框:几组选项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后面的文本框中可以输入文本。在程序运行时,当鼠标移到菜单项上时,在底部的状态栏将给出此菜单的功能提示。
加载用户自定义菜单
在框架类CMainFrame类的OnCreate函数中加载用户自定义的菜单。双击左侧工作区中CMainFrame类的OnCreate函数。编辑代码如下:
DockControlBar(&m_wndToolBar);
CMenu menu; //声明菜单对象
menu.LoadMenu(CG_IDR_POPUP_MY_VIEW); //黑色加粗为添加代码,括号内为自定义菜单名。
this-SetMenu(&menu); //设置自定义菜单替换现有菜单return 0;注:如果想创建级联菜单可选中Pop-up选项。
右键菜单的响应:
在View类中加入WM_RBOTTONDOWN的响应函数OnRButtonDown,在其中加入代码,如下:
CMenu menu; //定义菜单对象
menu.LoadMenu(IDR_MYMENU); //加载菜单资源,括号内为定义菜单名
CMenu *pSubMenu=menu.GetSubMenu(0); //取得第一个顶层菜单
ClientToScreen(&point); //转换坐标
pSubMenu-TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON,
point.x,point.y,GetParent()); //弹出菜单
CView::OnRBtuuonDown(nFlags,point);
菜单项属性对话框:几组选项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后面的文本框中可以输入文本。在程序运行时,当鼠标移到菜单项上时,在底部的状态栏将给出此菜单的功能提示。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询