我正在使用mfc CDialog。我需要显示关闭和最小化/最大化按钮,但它们不应关闭或最大化对话框。我已经覆盖了OnClose方法,即使单击关闭按钮也会保持对话框打开。但我无法阻止对话框的最大化和最小化,因为似乎没有OnMaximize方法。还有另一种方法吗?
答案 0 :(得分:2)
您需要处理WM_SYSCOMMAND
消息,并注意wParam == SC_MAXIMIZE
。
如果你抓住SC_MINIMIZE,你可以做你想做的事情,而不是把它传递给Windows。
找到此代码段here.
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);
}
答案 1 :(得分:0)
您无法在对话框中显示最小化/最大化图标。你可以通过转到Dialog属性(右击你的Dialog Contorol - >属性),选择样式痛苦并取消选择'Minimize Box','Maximize Box'来实现。