我正在尝试使用WM_SIZE事件强制应用程序的大小最小,代码为:
case WM_SIZE:
int nWidth;
int nHeight;
int _dWidth;
int _dHeight;
_dWidth = 870;
_dHeight = 510;
nWidth = LOWORD(lParam);
nHeight = HIWORD(lParam);
if (nWidth <= _dWidth){
return 0;
}
else if (nHeight <= _dHeight) {
return 0;
}
显然我必须返回0,如果我处理此消息但这样做没有效果,因为应用程序仍然可以变得更小,但它也禁用应用程序上的关闭按钮,所以有一个应用程序的正确方法是什么调整大小但具有最小尺寸?
答案 0 :(得分:1)
处理这种情况的正确方法是为WM_GETMINMAXINFO消息实现处理程序。
收到该消息后,您可以填写结构的字段,以便为窗口提供最小和最大可接受的大小。当与用户交互时,窗口管理器将正确处理这些限制。
WM_SIZE
意味着是单向通知,而不是您可以协商的内容。您只需要使布局或窗口内容无效。