WM_GETMINMAXINFO消息的使用

  • Post author:
  • Post category:其他



WM_GETMINMAXINFO的功能:

主要是控制窗口显示时的大小(ptMaxSize),最大化时的位置(ptMaxPosition),鼠标控制窗口大小的最大(ptMaxTrackSize)、最小(ptMinTrackSize)位置。

对于这个消息,wParam 没有意义,lParam是指向MINMAXINFO结构体的指针。

此时,MINMAXINFO的结构体的定义如下:


typedef struct {


POINT ptReserved; //不用


POINT ptMaxSize; //最大范围


POINT ptMaxPosition; //最大的放置点


POINT ptMinTrackSize; //最小拖动范围


POINT ptMaxTrackSize; //最大拖动范围


} MINMAXINFO;

case WM_GETMINMAXINFO:
     MINMAXINFO *mminfo;
     mminfo=(PMINMAXINFO)lParam;
   
     mminfo->ptMinTrackSize.x=200;
     mminfo->ptMinTrackSize.y=200;

     mminfo->ptMaxSize.x=300;
     mminfo->ptMaxSize.y=300;

     mminfo->ptMaxPosition.x=0;
     mminfo->ptMaxPosition.y=0;

     mminfo->ptMaxTrackSize.x=300;
     mminfo->ptMaxTrackSize.y=300;
     break;

在MFC中通过相应WM_GETMINMAXINFO消息后之需要在他的基础上添加一些代码就行

利用以上的代码就可以控制窗口的大小(300,300),最大化后会出现在(0,0)位置处,鼠标拖动改变窗口大小时,最大为(300,300),最小为(200,200)。其中的单位都是像素。



版权声明:本文为oqqTZb原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。