固定窗口大小

VOID EasySize(int mx, int my, UNIT s, LPRECT r) //mx最小宽度,my最小高度
{
if(r->right-r->left < mx)//宽度小于规定的最小宽度
{
   if((s == WMSZ_BOTTOMLEFT)
||(s == WMSZ_LEFT)
||(s == WMSZ_TOPLEFT))
r->left = r->right-mx;
else r->right = r->left+mx;
 }
if(r->bottom-r->top < my)
{
if((s == WMSZ_TOP)||(s == WMSZ_TOPLEFT)||(s == WMSZ_TOPRIGHT))
 r->top = r->bottom-my;
 else r->bottom = r->top+my;
 }
}
当窗口大小发生变化时,响应的顺序依次是:WM_GETMINMAXINFO->WM_SIZING->WM_SIZE
WM_GETMINMAXINFO:在窗口初始化的时候会被调用一次,当窗口大小发生改变的时候也会被调用利用这个函数,可以比较方便的实现窗口最大最小尺寸的控制
WM_SIZING:在窗口大小发生变化时被调用。在这个函数中,也可以控制窗口的最大最小尺寸。
WM_SIZE:在窗口大小改变结束后被调用,通常会在这个函数里重新摆放各个控件的位置及大小。不能控制窗口的最大最小化。

posted @ 2014-12-02 15:05  coding—fighting  阅读(436)  评论(0编辑  收藏  举报