asp.net删除MFC单文档默认菜单栏的两种方法
2023-06-13 09:14:17 时间
有两种方法:
第一种方法:重载框架类的Create函数,具体代码如下:
复制代码代码如下:
第一种方法:重载框架类的Create函数,具体代码如下:
BOOLCMainFrame::Create(LPCTSTRlpszClassName,LPCTSTRlpszWindowName,DWORDdwStyle,constRECT&rect,CWnd*pParentWnd,LPCTSTRlpszMenuName,DWORDdwExStyle,CCreateContext*pContext)
{
//TODO:在此添加专用代码和/或调用基类
// returnCFrameWnd::Create(lpszClassName,lpszWindowName,dwStyle,rect,////pParentWnd,lpszMenuName,dwExStyle,pContext);
HMENUnIDorHMenu=NULL;
returnCFrameWnd::CreateEx(dwExStyle,lpszClassName,lpszWindowName,dwStyle,
rect.left,rect.top,rect.right-rect.left,rect.bottom-rect.top,
pParentWnd->GetSafeHwnd(),
nIDorHMenu,
(LPVOID)pContext);
}
第二种方法:手动删除所有菜单项。具体是先定义一个删除所有菜单项的函数:
/*!
*\brief删除所有的菜单栏。
*
*删除窗口的所有菜单栏。
*\return无。
*/
staticvoidDelAllMenu(HMENUhMenu)
{
//首先删除多余的菜单项
intMenucount=GetMenuItemCount(hMenu);
for(inti=Menucount-1;i>-1;i--)
{
::DeleteMenu(hMenu,i,MF_BYPOSITION);
}
}
然后在框架类的OnCreate函数调用这个函数,具体如下:
intCMainFrame::OnCreate(LPCREATESTRUCTlpCreateStruct)
{
if(CFrameWnd::OnCreate(lpCreateStruct)==-1)
return-1;
if(!m_wndToolBar.CreateEx(this,TBSTYLE_FLAT,WS_CHILD|WS_VISIBLE|CBRS_TOP
|CBRS_GRIPPER|CBRS_TOOLTIPS|CBRS_FLYBY|CBRS_SIZE_DYNAMIC)||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("未能创建工具栏\n");
return-1;//未能创建
}
if(!m_wndStatusBar.Create(this)||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("未能创建状态栏\n");
return-1;//未能创建
}
//TODO:如果不需要工具栏可停靠,则删除这三行
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar);
//获取窗口的菜单句柄
CMenu*pMenu=GetMenu();
if(NULL!=pMenu)
{
DelAllMenu(pMenu->GetSafeHmenu());
}
return0;
}
相关文章
- .net 温故知新:【9】.NET日志记录 ILogger使用和原理
- WPF项目从.Net Framework迁移到.Net6
- 宝塔面板Linux系统通过Docker部署VB.NET Asp.Net Core WebAPI应用
- 浅谈.Net异步编程的前世今生----异步函数篇(完结)
- 国产开源基于.net实现的本地文档全文索引定位器,本地文本搜索神器
- 【愚公系列】2023年02月 .NET CORE工具案例-办公文档神器Toxy的使用
- .net让Oracle与ASP.NET实现无缝连接(oracleasp)
- 原理揭秘.NET 运用Redis图灵缓存原理(.net缓存redis)
- .Net搭配Redis解决高性能应用问题(.net redis)
- 数据库NET开发者操作Oracle数据库的全攻略(net操作oracle)
- 使用Net实现Oracle数据库的快速导入(net导入oracle)
- NET环境下MySQL数据库的使用实践(.net支持mysql吗)
- 使用NET来连接MySQL数据库的简单方法(.net怎么连mysql)
- NET备份MySQL提升数据安全性(.net 备份mysql)
- NET 对MySQL 的支持有限(.net不支持mysql)
- Redis无法安装NET组件(redis装不上net)
- 使用Oracle64位Net突破技术极限(oracle64位net)
- Asp.Net通用数据操作类(附通用数据基类)
- .net上传文件前所未有的简单
- asp.net(C#)动态添加非ASP的标准html控件(如添加Script标签)
- asp.net通过aspnetpager为DataList分页
- .Net中导出数据到Excel(asp.net和winform程序中)
- Asp.net清空控件值的方法(可自定义控件类型)
- .net下调用sqlserver存储过程的小例子
- 设置ASP.NET页面不被缓存(客户端/服务器端取消缓存方法)
- asp.net实现word文档在线预览功能的方法
- ASP.NET使用Subtract方法获取两个日期之间的天数