摘要:本文主要向大家介绍了VC编程实现让关闭按钮成灰色不可用的方法,通过具体的内容向大家展示,希望对大家学习VC编程有所帮助。
本文主要向大家介绍了VC编程实现让关闭按钮成灰色不可用的方法,通过具体的内容向大家展示,希望对大家学习VC编程有所帮助。
对于有些情况下运行的VC项目程序来说,会有禁止用户通过标题栏上的关闭按钮关闭窗口的情况,你会发现,这时候程序的关闭按钮变成灰色不可用,从任务栏处也无法关闭窗口,菜单同样是灰色的,很好的禁止了窗口关闭功能,如果想关闭,可以按键盘上的快捷键“ALT+F4”,或者通过任务管理器结束任务。下面就来说明一下这个功能的核心代码文件。
禁用关闭按钮的具体功能代码如下:
#include "stdafx.h" #include "Test.h" #include "MainFrm.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // CMain<d>Frame</d> IMPLEMENT_DYNCREATE(CMain<d>Frame</d>, C<d>Frame</d>Wnd) BEGIN_MESSAGE_MAP(CMain<d>Frame</d>, C<d>Frame</d>Wnd) ON_WM_CREATE() END_MESSAGE_MAP() static UINT indicators[] = { ID_SEPARATOR, // 状态行指示器 ID_INDICATOR_CAPS, ID_INDICATOR_NUM, ID_INDICATOR_SCRL, }; // CMain<d>Frame</d> 构造/销毁 CMain<d>Frame</d>::CMain<d>Frame</d>() { // TODO:在此添加成员初始化代码 } CMain<d>Frame</d>::~CMain<d>Frame</d>() { } int CMain<d>Frame</d>::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (C<d>Frame</d>Wnd::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_MAIN<d>FRAME</d>)) { 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=GetSystemMenu(FALSE); //取得系统菜单数量 int Count=pMenu->GetMenuItemCount(); //取得关闭菜单的ID UINT ID=pMenu->GetMenuItemID(Count-1); //禁止关闭菜单 pMenu->EnableMenuItem(ID,MF_GRAYED); return 0; } BOOL CMain<d>Frame</d>::PreCreateWindow(CREATESTRUCT& cs) { if( !C<d>Frame</d>Wnd::PreCreateWindow(cs) ) return FALSE; // TODO: 在此处通过修改 CREATESTRUCT cs 来修改窗口类或 // 样式 return TRUE; } // CMain<d>Frame</d> 诊断 #ifdef _DEBUG void CMain<d>Frame</d>::AssertValid() const { C<d>Frame</d>Wnd::AssertValid(); } void CMain<d>Frame</d>::Dump(CDumpContext& dc) const { C<d>Frame</d>Wnd::Dump(dc); } #endif //_DEBUG // CMain<d>Frame</d> 消息处理程序
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言VC/MFC频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号