科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件如何禁止对话框关闭按钮和浮动工具条上的系统菜单

如何禁止对话框关闭按钮和浮动工具条上的系统菜单

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

如何禁止对话框关闭按钮和浮动工具条上的系统菜单

作者:徐景周  来源:soft6 2008年5月15日

关键字: 系统菜单 关闭按钮 C# Windows

  • 评论
  • 分享微博
  • 分享邮件

1、禁止对话框中的关闭按钮有二种方法。

第一种方法,用ModiftMenu()涵数来实现:

CMenu* pMenu = this->GetSystemMenu(FALSE);
pMenu->ModifyMenu(SC_CLOSE,MF_BYCOMMAND | MF_GRAYED );

第二种方法,用EnableMenuItem()涵数来实现:

CMenu* pMenu = this->GetSystemMenu(FALSE);
pMenu->EnableMenuItem( SC_CLOSE, MF_BYCOMMAND|MF_GRAYED);

2、禁止浮动工具条上的系统菜单。

  新建一个CToolBar的派生类CxxToolBar,在新类中的左键双击(CxxToolBar::OnLButtonDblClk(...))和左键单击(CxxToolBar:: OnLButtonDown(...))涵数中分别加入下面代码既可:

if (IsFloating()) file://工具条正在浮动状态中
{
CWnd* pMiniFrame;
CWnd* pDockBar;

pDockBar = GetParent();
pMiniFrame = pDockBar->GetParent();

file://去除其上系统菜单
pMiniFrame->ModifyStyle(WS_SYSMENU, NULL);

file://重绘工具条
pMiniFrame->ShowWindow(SW_HIDE);
pMiniFrame->ShowWindow(SW_SHOW);
}

3、禁止窗口最大化按钮

  在PreCreateWindow()涵数中去掉WS_MAXIMIZEBOX风格显示既可。

BOOL CxxFrameWnd::PreCreateWindow(CREATESTRUCT& cs)
{
cs.style &= ~WS_MAXIMIZEBOX;
return CFrameWnd::PreCreateWindow(cs);
}

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章