C ++ WM_SIZE,用于最小应用程序大小

时间:2015-02-13 14:42:44

标签: c++ windows visual-studio-2013

我正在尝试使用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,如果我处理此消息但这样做没有效果,因为应用程序仍然可以变得更小,但它也禁用应用程序上的关闭按钮,所以有一个应用程序的正确方法是什么调整大小但具有最小尺寸?

1 个答案:

答案 0 :(得分:1)

处理这种情况的正确方法是为WM_GETMINMAXINFO消息实现处理程序。

收到该消息后,您可以填写结构的字段,以便为窗口提供最小和最大可接受的大小。当与用户交互时,窗口管理器将正确处理这些限制。

WM_SIZE意味着是单向通知,而不是您可以协商的内容。您只需要使布局或窗口内容无效。