当前位置:首页 > 实用技巧 >

mfc如何屏蔽掉菜单中的一些选项

来源:原点资讯(www.yd166.com)时间:2023-05-07 11:46:09作者:YD166手机阅读>>

Windows窗口大多有菜单,而菜单的作用在程序运行中有着至关重要的作用。

前面学习了绘图和键盘鼠标事件。今天就学习菜单。

菜单在MFC中是CMenu类。

在Windows中,HMENU表示菜单的句柄,CMenu类封装的便是HMENU。

构造方法:CMenu::CMenu ,构造 CMenu 对象。

CMenu有一个公共的对象(对外公开)

CMenu::m_hMenu,指定的句柄附加到的 Windows 菜单CMenu对象。

CMenu也有以下函数:

(1)CMenu::AppendMenu 将新项追加到此菜单的末尾。

(2)CMenu::Attach 将附加的 Windows 菜单句柄CMenu对象。

(3)CMenu::CheckMenuItem 旁边放置一个复选标记,或者从弹出菜单中的菜单项移除复选标记。

(4)CMenu::CheckMenuRadioItem 将菜单项旁边的单选按钮,并从所有组中的其他菜单项中移除的单选按钮。

(5)CMenu::CreateMenu 创建空菜单,并将其附加到CMenu对象。

(6)CMenu::CreatePopupMenu 创建空的弹出菜单,并将其附加到CMenu对象。

(7)CMenu::DeleteMenu 从菜单中删除指定的项。 如果菜单项具有相关联的弹出菜单,销毁弹出菜单的句柄并释放其占用的内存。

(8)CMenu::DeleteTempMap 删除任何临时CMenu创建的对象FromHandle成员函数。

(9)CMenu::DestroyMenu 销毁附加到的菜单CMenu对象并释放任何菜单所占用的内存。

(10)CMenu::Detach 从 Windows 菜单句柄中分离CMenu对象并返回句柄。

(11)CMenu::DrawItem 由框架在所有者描述菜单更改的可视方面时调用。

(12)CMenu::EnableMenuItem 启用、 禁用,或变暗 (灰色) 菜单项。

(13)CMenu::FromHandle 返回一个指向CMenu给定 Windows 菜单句柄的对象。

(14)CMenu::GetDefaultItem 确定指定的菜单上的默认菜单项。

(15)CMenu::GetMenuContextHelpId 检索与菜单关联的帮助上下文 ID。

(16)CMenu::GetMenuInfo 检索特定菜单上的信息。

(17)CMenu::GetMenuItemCount 确定弹出窗口或顶级菜单中项的数量。

(18)CMenu::GetMenuItemID 获取位于指定位置的菜单项的菜单项标识符。

(19)CMenu::GetMenuItemInfo 检索菜单项有关的信息。

(20)CMenu::GetMenuState 在弹出菜单中返回指定的菜单项或项的数目的状态。

(21)CMenu::GetMenuString 检索指定的菜单项的标签。

(22)CMenu::GetSafeHmenu 返回m_hMenu包装此CMenu对象。

(23)CMenu::GetSubMenu 检索指向一个弹出菜单。

(24)CMenu::InsertMenu 向菜单下移动其他项中指定位置处插入新菜单项。

(25)CMenu::InsertMenuItem 在菜单中的指定位置处插入新菜单项。

(26)CMenu::LoadMenu 从可执行文件加载菜单资源,并将其附加到CMenu对象。

(27)CMenu::LoadMenuIndirect 从内存中的菜单模板加载一个菜单,并将其附加到CMenu对象。

(28)CMenu::MeasureItem 由框架调用以创建一个所有者描述菜单时确定菜单维度。

(29)CMenu::ModifyMenu 更改现有菜单项中指定的位置。

(30)CMenu::RemoveMenu 从指定的菜单中删除具有相关联的弹出菜单的菜单项。

(31)CMenu::SetDefaultItem 设置指定的菜单的默认菜单项。

(32)CMenu::SetMenuContextHelpId 设置要与菜单相关联的帮助上下文 ID。

(33)CMenu::SetMenuInfo 设置特定菜单上的信息。

(34)CMenu::SetMenuItemBitmaps 将指定的选中标记位图的菜单项与相关联。

(35)CMenu::SetMenuItemInfo 更改菜单项有关的信息。

(36)CMenu::TrackPopupMenu 在指定位置显示一个浮动的弹出菜单,并在弹出菜单上跟踪选定的项。

(37)CMenu::TrackPopupMenuEx 在指定位置显示一个浮动的弹出菜单,并在弹出菜单上跟踪选定的项。

菜单包含了一般的菜单(特别代指通常标题栏下的菜单)和弹出菜单(指右键弹出的菜单)。

两种菜单一样。

而且菜单具有一定的标识,用于菜单被点击后运行过程的识别绑定。

在开发时,菜单属于一种资源。

我们用以下方法实现菜单。

我们在项目中选择添加资源:

mfc如何屏蔽掉菜单中的一些选项,(1)

添加资源的窗口

mfc如何屏蔽掉菜单中的一些选项,(2)

菜单的编辑窗口

编辑菜单过程中,要为每个菜单项分配ID。这个ID就是菜单操作的识别号,要根据这个ID来绑定菜单操作的方法或者函数。

使用ON_COMMAND宏来绑定

绑定的方法是ON_COMMAND(ID号,函数)

绑定使用的位置是MESSAGE_MAP()

同样的,右键菜单和一般的菜单栏菜单是一样的,唯一的区别便是,右键菜单(又称快捷菜单)只有在右键点击时弹出。所以我们一般会为右键添加如下的代码:

void MyWnd::OnRButtonDown(UINT nFlags, Cpoint point) {

CMenu cm1;

cm1.LoadMenuA(IDR_MENU2);//IDR_MENU2是菜单的ID号

CMenu* cm2 = cm1.GetSubMenu(0);

cm2->TrackPopupMenu(TPM_LEFTALIGN | TPM_LEFTBUTTON, point.x, point.y, AfxGetMainWnd());

}

栏目热文

mfc界面内容实时更新(mfc如何更新窗口线条)

mfc界面内容实时更新(mfc如何更新窗口线条)

BCGControlBar库拥有500多个经过全面设计、测试和充分记录的MFC扩展类。 我们的组件可以轻松地集成到您的应...

2023-05-07 12:22:33查看全文 >>

mfc菜单响应时间(mfc菜单怎么显示在窗口中)

mfc菜单响应时间(mfc菜单怎么显示在窗口中)

质量流量计是运用流体质量流量对振动管振荡的调制作用即科里奥利力现象为原理,以质量流量测量为目的的质量流量计,一般由传感器...

2023-05-07 12:28:06查看全文 >>

mfc编程怎样设置对话框在屏幕上(mfc主窗口视图怎么显示对话框)

mfc编程怎样设置对话框在屏幕上(mfc主窗口视图怎么显示对话框)

创建对话框主要分两大步,第一,创建对话框资源,主要包括创建新的对话框模板、设置对话框属性和为对话框添加各种控件;第二,生...

2023-05-07 12:24:39查看全文 >>

mfc滑动条件怎么设置(mfc下拉选项怎么设置)

mfc滑动条件怎么设置(mfc下拉选项怎么设置)

创建和销毁定时器MFC的CWnd类提供的成员函数SetTimer用于设置并启动定时器。第一个参数是我们设置的定时器ID,...

2023-05-07 11:58:54查看全文 >>

mfc状态栏在哪里添加(mfc怎么添加登录界面)

mfc状态栏在哪里添加(mfc怎么添加登录界面)

Visual c 提 供 了 功 能 强 大 的 类 库, 基 本 上 应 用 开 发 的 要 求, 但 对 于 某...

2023-05-07 12:19:20查看全文 >>

mfc弹窗怎么设置(mfc工具栏窗口怎么关闭)

mfc弹窗怎么设置(mfc工具栏窗口怎么关闭)

Xtreme Toolkit Pro是MFC开发中最全面界面控件套包,它提供了Windows开发所需要的11种主流的Vi...

2023-05-07 12:22:22查看全文 >>

mfc窗口内容怎么刷新(mfc怎么清除窗口信息)

mfc窗口内容怎么刷新(mfc怎么清除窗口信息)

你可以因为现任不好而分手,但千万不要认为别人更好,永远有人更好,眼下便是更好。。。---- 网易云热评一、 多文档视图架...

2023-05-07 12:03:34查看全文 >>

mfc增加命令窗口(mfc菜单栏位置)

mfc增加命令窗口(mfc菜单栏位置)

使用visual studio 2019 创建过程请参考Bili的上一篇文章⬇⬇→!使用visual studio 20...

2023-05-07 12:14:36查看全文 >>

mfc创建后如何调出界面(mfc工程怎么添加一个新的界面)

mfc创建后如何调出界面(mfc工程怎么添加一个新的界面)

1.首先需要打开VS2019软件创建MFC应用2.然后给这个项目起一个自己想要的名字3.点击创建后在应用程序类型中选择基...

2023-05-07 12:10:04查看全文 >>

mfc编辑窗口怎么重新打开(mfc主页怎么打开另一个窗口)

mfc编辑窗口怎么重新打开(mfc主页怎么打开另一个窗口)

问题描述:今天在学习 MFC 编程时,出现了资源视图中的对话框突然打不开的情况,显示“在另一个编辑器中打开”,如图:解决...

2023-05-07 12:31:40查看全文 >>

文档排行