首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CDialog的最大化/最小化按钮的阻塞操作

CDialog的最大化/最小化按钮的阻塞操作
EN

Stack Overflow用户
提问于 2010-11-01 20:41:34
回答 2查看 1.8K关注 0票数 0

我使用的是mfc CDialog。我需要显示关闭和最小化/最大化按钮,但它们不应该关闭或最大化对话框。我重写了OnClose方法,即使单击了close按钮也保持对话框打开。但我无法阻止最大化和最小化对话框,因为似乎没有OnMaximize方法。有没有别的办法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-01 20:53:30

您需要处理WM_SYSCOMMAND消息,并监视wParam == SC_MAXIMIZE

如果你捕捉到了SC_MINIMIZE,你可以做任何你想做的事情,而不是把它传递给Windows。

msdn

找到此代码片段here.

代码语言:javascript
运行
复制
const int WM_SYSCOMMAND= 0x0112;
const int SC_MAXIMIZE= 0xF030;
protected override void WndProc(ref Message m)
{
    if(m.Msg==WM_SYSCOMMAND)
    {
        if((int)m.WParam==SC_MAXIMIZE)
        {
            MessageBox.Show("Maximized!!");
            return; // swallow the message
        }
    }
    base.WndProc (ref m);
}
票数 2
EN

Stack Overflow用户

发布于 2010-11-01 20:52:54

对话框中根本不能显示最小化/最大化图标。你可以通过进入对话框属性(右击你的对话框控制-->属性),选择Styles pain并取消选择‘最小化框’,‘最大化框’。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4068937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档