首页 > 学院 > 开发设计 > 正文

VC 消息积累 01

2019-11-08 02:03:32
字体:
来源:转载
供稿:网友

1, WM_NCCALCSIZE 2, WM_GETMINMAXINFO

1-1 用于修改标题的高度 – 取消标题 消息绑定 ON_WM_NCCALCSIZE() 响应函数 OnNcCalcSize void xxxDlg::OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS* lpncsp) { if (lpncsp != NULL && GetWindowLong(GetSafeHwnd(),GWL_STYLE) & WS_MAXIMIZE) lpncsp->rgrc[0].top -= ::GetSystemMetrics(SM_CYSMCAPTION); }

1-2 用于捕捉窗口最大化,中等 消息绑定 ON_WM_GETMINMAXINFO() 响应函数 OnGetMinMaxInfo void xxxDlg::OnGetMinMaxInfo(MINMAXINFO* pMMI) { // 使用主要以参数设置的方式进行 // MINMAXINFO 结构体分析

typedef struct tagMINMAXINFO { POINT ptReserved; POINT ptMaxSize; //最大长度,宽度 POINT ptMaxPosition; //起始位置 POINT ptMinTrackSize; POINT ptMaxTrackSize;} MINMAXINFO, *PMINMAXINFO, *LPMINMAXINFO;【所以设置的方式】 //最大化对话框 int iWidth = GetSystemMetrics(SM_CXSCREEN); int iHeight = GetSystemMetrics(SM_CYSCREEN); pMMI->ptMaxSize.x = iWidth; // 设置窗口最大化时的宽度 pMMI->ptMaxSize.y = iHeight - 32; // 设置窗口最大化时的高度 **-32 防止将下方的最下方的任务栏遮挡住** pMMI->ptMaxPosition.x = 0; // 设置窗口最大化时x坐标 pMMI->ptMaxPosition.y = 0; // 设置窗口最大化时y坐标 最小化同上

}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表