当前位置:  编程技术>c/c++/嵌入式

VC实现让关闭按钮成灰色不可用的方法

    来源: 互联网  发布时间:2014-10-26

    本文导语:  对于有些情况下运行的VC项目程序来说,会有禁止用户通过标题栏上的关闭按钮关闭窗口的情况,你会发现,这时候程序的关闭按钮变成灰色不可用,从任务栏处也无法关闭窗口,菜单同样是灰色的,很好的禁止了窗口关闭功...

对于有些情况下运行的VC项目程序来说,会有禁止用户通过标题栏上的关闭按钮关闭窗口的情况,你会发现,这时候程序的关闭按钮变成灰色不可用,从任务栏处也无法关闭窗口,菜单同样是灰色的,很好的禁止了窗口关闭功能,如果想关闭,可以按键盘上的快捷键“ALT+F4”,或者通过任务管理器结束任务。下面就来说明一下这个功能的核心代码文件。

禁用关闭按钮的具体功能代码如下:

#include "stdafx.h"
#include "Test.h"
#include "MainFrm.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif

// CMainFrame
IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
 ON_WM_CREATE()
END_MESSAGE_MAP()

static UINT indicators[] =
{
 ID_SEPARATOR,      // 状态行指示器
 ID_INDICATOR_CAPS,
 ID_INDICATOR_NUM,
 ID_INDICATOR_SCRL,
};


// CMainFrame 构造/销毁

CMainFrame::CMainFrame()
{
 // TODO:在此添加成员初始化代码
}

CMainFrame::~CMainFrame()
{
}

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
 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=GetSystemMenu(FALSE);
 //取得系统菜单数量
 int Count=pMenu->GetMenuItemCount();
 //取得关闭菜单的ID
 UINT ID=pMenu->GetMenuItemID(Count-1);
 //禁止关闭菜单
 pMenu->EnableMenuItem(ID,MF_GRAYED);
 return 0;
}

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
 if( !CFrameWnd::PreCreateWindow(cs) )
 return FALSE;
 // TODO: 在此处通过修改 CREATESTRUCT cs 来修改窗口类或
 // 样式

 return TRUE;
}

// CMainFrame 诊断
#ifdef _DEBUG
void CMainFrame::AssertValid() const
{
 CFrameWnd::AssertValid();
}

void CMainFrame::Dump(CDumpContext& dc) const
{
 CFrameWnd::Dump(dc);
}

#endif //_DEBUG
// CMainFrame 消息处理程序

    
 
 

您可能感兴趣的文章:

  • 怎样在JAVA里实现获取指定服务器上所有可用数据库的列表??
  • WinForm实现关闭按钮不可用或隐藏的方法
  • 大家帮帮忙,怎么能实现这里的提问按钮的这种功能,点一次就不可用?
  • 内核中的timer是不是可以理解为多线程,我想对一段代码加锁,如何实现,有没有可用的内核函数?
  • 用shell脚本实现自动切换内网和外网实现高可用
  • jQuery点击按钮后用禁用按钮并显示[正在处理...]的实现代码
  • 如何实现右键单击按钮,按钮上出现图片。谢谢
  • 在java applet中如何关闭IE窗口呢?比如说在上面放个按钮,点击按钮就可以把IE窗口关闭掉。如何实现呢?
  • Repeater中添加按钮实现点击按钮获取某一行数据的方法
  • 怎么实现根据表单不同的按钮,处理不同的功能?
  • JButton如何实现按钮被按下,不反弹。谢谢
  • 如何实现点击一个按钮,在文本框中显示?
  • 怎么实现,让图片填充整个按钮区域吗?
  • 如何实现ie左上脚的“后退”按钮失效功能?
  • 关于用按钮实现超链接的问题。
  • android自定义按钮示例(重写imagebutton控件实现图片按钮)
  • 请教!如何用按钮实现jsp或html页面的打印功能?
  • 请问诸位高手,Java中JFrame上最小化按钮是调用什么方法实现的??
  • C#键盘输入回车键实现点击按钮效果的方法
  • JQuery实现动态表格点击按钮表格增加一行
  • Jquery获取单选按钮中文本值的实现代码
  • jQuery form表单reset按钮重置清空表单的实现代码
  • C# Winform实现捕获窗体最小化、最大化、关闭按钮事件的方法
  • JSP单选按钮验证、下拉框验证、复选框验证实现代码
  • 写个abc.html内容为<input type=button><textarea>希望按下按钮后,文本框中的文字保存到a.txt怎样实现?(在linux下)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • css滤镜实现页面灰色黑白色效果代码
  • 通过javascript实现DIV居中,兼容各浏览器版本
  • socket实现多文件并发传输,求助多线程实现问题?
  • Python GUI编程:tkinter实现一个窗口并居中代码
  • interface 到底有什么用???实现接口,怎么实现??
  • 大家帮帮忙,怎么能实现这里的提问按钮的这种功能,点一次就不可用? iis7站长之家
  • 怎么用Jsp实现在页面实现树型结构?
  • sharepoint 2010 使用STSNavigate函数实现文件下载举例
  • windows 下的PortTunnel 在linux下怎么实现?或者相应的已经实现的软件?端口映射
  • php实现socket实现客户端和服务端数据通信源代码
  • 网站重定向用C语言实现iptables,ACL实现
  • flash AS3反射实现(describeType和getDefinitionByName)
  • 在linux下如何编程实现nslookup命令实现的IP地址和域名互相转换的功能?
  • boost unordered_map和std::list相结合的实现LRU算法
  • 求在freebsd+Squid下实现pc上网的透明代理的实现方法!给出具体配置方法的高分谢!
  • c#通过委托delegate与Dictionary实现action选择器代码举例
  • linux下如实现与window下的驱动器实现文件共享??
  • 使用java jdk中的LinkedHashMap实现简单的LRU算法
  • qt如何实现:操作键盘实现数据的滚动?
  • iphone cocos2d 精灵的动画效果(图片,纹理,帧)CCAnimation实现
  • 我想用APPLET实现读取客户端的图片文件,该如何实现?
  • c语言判断某一年是否为闰年的各种实现程序代码
  • PING是用TCP,还是用UDP来实现的?或是采用其它协议实现的?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3