Visual C++ 菜单
来源:互联网 发布:电脑桌面软件整理 编辑:程序博客网 时间:2024/06/03 21:46
2.1 如何动态添加和删除菜单项
- AppendMenu
- InsertMenu
- DeleteMenu
/////////////////////////////////////////////////////////////////////////////// CMainFrame message handlersvoid CMainFrame::OnAppendMenu() { //获得主菜单 CMenu* pMenu = GetMenu(); //获得子菜单 CMenu* pSubMenu = pMenu->GetSubMenu(4); if (pSubMenu->GetMenuItemCount() == 4) { //在菜单末端添加菜单项 pSubMenu->AppendMenu(MF_STRING, ID_TEST_MENU, _T("新菜单项")); //重画菜单 DrawMenuBar(); }}void CMainFrame::OnInsertMenu() { //获得主菜单 CMenu* pMenu = GetMenu(); //获得子菜单 CMenu* pSubMenu = pMenu->GetSubMenu(4); if (pSubMenu->GetMenuItemCount() == 4) { //在菜单指定位置添加菜单项 pSubMenu->InsertMenu(4, MF_BYPOSITION, ID_TEST_MENU, _T("新菜单项")); //重画菜单 DrawMenuBar(); }}void CMainFrame::OnRemoveMenu() { //获得主菜单 CMenu* pMenu = GetMenu(); //获得子菜单 CMenu* pSubMenu = pMenu->GetSubMenu(4); if (pSubMenu->GetMenuItemCount() == 5) { //删除菜单项 pSubMenu->RemoveMenu(4, MF_BYPOSITION); //重画菜单 DrawMenuBar(); }}void CMainFrame::OnDeleteMenu() { //获得主菜单 CMenu* pMenu = GetMenu(); //获得子菜单 CMenu* pSubMenu = pMenu->GetSubMenu(4); if (pSubMenu->GetMenuItemCount() == 5) { //删除菜单项 pSubMenu->DeleteMenu(4, MF_BYPOSITION); //重画菜单 DrawMenuBar(); }}void CMainFrame::OnTestMenu() { AfxMessageBox(_T("测试菜单项命令")); }
2.2 如何在系统菜单中添加菜单项
- GetSystemMenu
//获得系统菜单CMenu* pMenu = GetSystemMenu(FALSE);//删除系统菜单项pMenu->RemoveMenu(SC_MOVE, MF_STRING);//添加菜单项pMenu->InsertMenu(0, MF_BYPOSITION, ID_TEST_MENU, _T("测试菜单项"));//重画菜单DrawMenuBar();
2.3 如何禁用关闭按钮
- EnableMenuItem
//获得系统菜单CMenu* pMenu = GetSystemMenu(FALSE);//禁用关闭按钮pMenu->EnableMenuItem(SC_CLOSE, MF_BYCOMMAND | MF_GRAYED);
2.4 如何启用和禁用菜单项
CCmdUI的Enable方法
void CMainFrame::OnTestMenu1() { m_bEnable1 = FALSE; m_bEnable2 = TRUE;}void CMainFrame::OnUpdateTestMenu1(CCmdUI* pCmdUI) { //启用或禁用菜单1 pCmdUI->Enable(m_bEnable1); }void CMainFrame::OnTestMenu2() { m_bEnable1 = TRUE; m_bEnable2 = FALSE; }void CMainFrame::OnUpdateTestMenu2(CCmdUI* pCmdUI) { //启用或禁用菜单2 pCmdUI->Enable(m_bEnable2);}
2.5 如何设置菜单项的检查状态
SetCheck方法
void CMainFrame::OnUpdateTestMenu(CCmdUI* pCmdUI) { //设置菜单项检查状态 pCmdUI->SetCheck(m_nCheck); }
2.6 如何实现快捷菜单
即右键菜单ContextMenu
void CDemoView::OnContextMenu(CWnd* pWnd, CPoint point) { CMenu menu; //加载菜单 if (!menu.LoadMenu(IDR_MENU)) { return; } //获得子菜单 CMenu* pPopupMenu = menu.GetSubMenu(0); //弹出菜单 pPopupMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, pWnd); }void CDemoView::OnTestMenu1() { AfxMessageBox(_T("快捷菜单项1命令"));}void CDemoView::OnTestMenu2() { AfxMessageBox(_T("快捷菜单项2命令"));}
0 0
- Visual C++ 菜单
- 【C#】菜单
- Visual C#的菜单编程
- Visual.Assist.X 菜单汉化
- Visual Studio 添加自定义菜单
- 如果该菜单附加到一个对话框,在 Visual c + + 中则不能从其命令用户界面处理程序更改的菜单项的状态
- Visual Studio菜单下不见“导出模板”菜单项
- Visual Studio 2005菜单重复现象
- [Visual C++系列] 3.3 使用菜单
- Visual Studio 右键菜单太长了怎么办?
- Visual Studio 2010 菜单重复现象
- Visual C ++经验谈
- Visual C 串口操作
- Visual C++/MFC入门教程
- Visual C++/MFC入门教程
- Visual C++/MFC入门教程
- Visual C#数据库编程
- 捕捉异常 (Visual C#)
- 关于查询FileNet PE中用户Inbox信息
- Visual C++ 光标
- python BeautifulSoup模块的安装
- 【HackerRank】Red John is Back (Dynamic programming)简单递推
- 13IP输入框IP ADDRESS
- Visual C++ 菜单
- python字典实现switch功能
- Leetcode_permutations-ii
- 关于java的位运算
- Visual C++ 控制栏
- Framework4.0 IIS7下urlrewriter设置问题
- 带着目标,努力前进!
- 自己有电脑的,不看后悔一辈子哦
- 关于不同数据库下FileNet流程查询特殊处理