概述
在窗口的大小更改后,框架调用该成员函数。
afx_msg void OnSize(
UINT nType,
int cx,
int cy
);
参数nType 指定请求的调整大小的类型。
此参数可以是下列值之一:
SIZE_MAXIMIZED 窗口最大化。
SIZE_MINIMIZED 窗口最小化。
SIZE_RESTORED 窗口已调整大小,但是,SIZE_MINIMIZED 和 SIZE_MAXIMIZED 不适用。
在某些其他窗口最大化时,SIZE_MAXHIDE 发送到所有弹出窗口。
在某些其他窗口将还原为其以前的大小时,SIZE_MAXSHOW 发送到所有弹出窗口。
cx
指定工作区的新的宽度。
cy
指定工作区的新的高度。
备注 :
如果 SetScrollPos 或 MoveWindow 成员函数用于从 OnSize的子窗口调用,SetScrollPos 或 MoveWindow 的 bRedraw 参数应为非零导致 CWnd 会重新绘制。
说明 :
此成员函数由框架调用提供您的应用程序处理Windows消息。
当接收消息,参数传递给函数以反映结构接收的参数。
如果调用此函数的基类实现, 该实现将使用参数最初用消息您提供给函数而非参数。
头文件:
Header: afxwin.h
//窗体消息:尺寸被改变
void CMFCApplication3Dlg::OnSize(UINT nType, int cx, int cy) // cx 窗体宽度,cy窗体高度
{
CDialogEx::OnSize(nType, cx, cy);
if (SIZE_MINIMIZED == nType) //防止最小化时程序崩溃
return;
if (m_CList_Online.m_hWnd != NULL)
{
CRect rc;
rc.left = 1; //左坐标
rc.top = 80; //上坐标
rc.right = cx - 1; //右坐标
rc.bottom = cy - 160; //下坐标
m_CList_Online.MoveWindow(rc); //将列表框控件尺寸设置成rc的属性
}
if (m_CList_Message.m_hWnd != NULL)
{
CRect rc;
rc.left = 1; //左坐标
rc.top = cy-156; //上坐标
rc.right = cx - 1; //右坐标
rc.bottom = cy - 6; //下坐标
m_CList_Message.MoveWindow(rc); //将列表框控件尺寸设置成rc的属性
}
}
这段代码的意思是:列表框尺寸随【窗体的尺寸的改变】而改变
最后
以上就是明亮月光为你收集整理的MFC窗体消息之尺寸被改变 OnSize()的全部内容,希望文章能够帮你解决MFC窗体消息之尺寸被改变 OnSize()所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复