我是靠谱客的博主 明亮月光,最近开发中收集的这篇文章主要介绍MFC窗体消息之尺寸被改变 OnSize(),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在窗口的大小更改后,框架调用该成员函数。

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()所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部