- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MFC窗口和控件大小同时变化方案
MFC窗口和控件大小同时变化第一步:当然要首先设置当前对话框属性为可拖动大小变化的即 Resizing属性第二步:定义一个CList类对象,用于将所有的控件坐标存储在链表中。CList CRect,CRect listRect;第三步:初始化函数中添加在初始化窗口中最后添加:CRectrectWnd;GetWindowRect(rectWnd);//得到当前窗口(对话框)的坐标listRect.AddTail(rectWnd);//将坐标添加到链表listRect的末尾(注意是CList CRect,CRect listRect;类的成员变量)CWnd *pWndChild=GetWindow(GW_CHILD);//while (pWndChild)//依次得到对话框上控件的坐标,并将所有的控件坐标存储在链表中{pWndChild-GetWindowRect(rectWnd);listRect.AddTail(rectWnd);//由于依次将控件坐标添加到链表末尾,所以开头的坐标是对话框的坐标pWndChild=pWndChild-GetNextWindow();}第四步:添加WM_SIZE消息响应函数:void CDevicePage::OnSize(UINT nType, int cx, int cy)?{CDialog::OnSize(nType, cx, cy);if (listRect.GetCount()0)//看链表是否为空{CRectrectDlgNow;GetWindowRect(rectDlgNow);//得到当前对话框的坐标POSITION mp=listRect.GetHeadPosition();//取得存储在链表中的头元素,其实就是前边的对话框坐标CRectrectDlgSaved;rectDlgSaved=listRect.GetNext(mp);ScreenToClient(rectDlgNow);float fRateScaleX=(float)(rectDlgNow.right-rectDlgNow.left)/(rectDlgSaved.right-rectDlgSaved.left);//拖拉后的窗口大小与原来窗口大小的比例float fRateScaleY=(float)(rectDlgNow.bottom-rectDlgNow.top)/(rectDlgSaved.bottom-rectDlgSaved.top);ClientToScreen(rectDlgNow);CRectrectChildSaved;CWnd *pWndChild=GetWindow(GW_CHILD);while (pWndChild){rectChildSaved=listRect.GetNext(mp);rectChildSaved.left=rectDlgNow.left+(int)((rectChildSaved.left-rectDlgSaved.left)*fRateScaleX);rectChildSaved.top=rectDlgNow.top+(int)((rectChildSaved.top-rectDlgSaved.top)*fRateScaleY);rectChildSaved.right=rectDlgNow.right+(int)((rectChildSaved.right-rectDlgSaved.right)*fRateScaleX);rectChildSaved.bottom=rectDlgNow.bottom+(int)((rectChildSaved.bottom-rectDlgSaved.bottom)*fRateScaleY);ScreenToClient(rectChildSaved);pWndChild-MoveWindow(rectChildSaved);pWndChild = pWndChild-GetNextWindow();}}Invalidate(); //强制重绘窗口}
您可能关注的文档
- 2012级程序设计语言_java_基本单元实验报告_201111601319_甘绍义doc.doc
- 2013八上物体尺度质量密度习题及答案.doc
- 2013届高考地理一轮总复习课时作业(人教版)16.doc
- 2013年全国大学生数学建模竞赛A题车辆排队长度与事故持续时间道路实际通行能力路段上流流量间的关系.doc
- 2013年小学教师考试教育心理学章节习题及答案12.doc
- 2013年中考盐城市九年级物理第一次模拟试卷.doc
- 2013年扬中树人政治试卷一模(含答案).doc
- 2013年注册会计师考试《审计》单元测试题(七).docx
- 2013年浙江大学管理信息系统作业答案.doc
- 2013年高考总复习数学北师(江西版)理精练第一章12命题及其关系充分条件与必要条件(答案含详解).doc
文档评论(0)