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

C++ WM_SIZE for minimum application size

我正在尝试使用 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;
   }

显然,如果我处理此消息,我必须 return 0 但这样做没有任何效果,因为应用程序仍然可以变得更小,但它也会禁用应用程序上的关闭按钮,所以正确的方法是什么有一个可以调整大小但具有最小大小的应用程序?

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

收到该消息时,您可以填写结构字段,为您的 window 提供可接受的最小和最大大小。 window 管理器在与用户交互时将妥善处理这些限制。

WM_SIZE 是一种单向 通知,您无法与之协商。您应该简单地使您的布局或 window 内容无效。