书籍:《Visual C++ 2017从入门到精通》的2.4.2 MFC应用程序类型

环境:visual studio 2022

内容:【例2.38】视图窗口的客户区

说明:以下内容大部分来自腾讯元宝。

1.创建一个单文档程序

一个简单的单文档程序-CSDN博客https://blog.csdn.net/qq_20725221/article/details/146395687?spm=1001.2014.3001.55022.新增”主框架窗口的客户区尺寸“和”视图窗口的客户区尺寸“两个子菜单。

3.设置”主框架窗口的客户区尺寸“的ID设置为ID_MAIN_SIZE。

 

4.为”主框架窗口的客户区尺寸“添加事件处理程序”。

5.类列表为CMainFrame,消息类型设置为COMMAND.

 6.在事件处理程序中添加以下代码,获取CMainFrame窗口的大小。

void CMainFrame::OnMainSize()
{
	// TODO: 在此添加命令处理程序代码
	CRect rt;
	CString str;
	GetClientRect(&rt);
	str.Format(_T("主窗口客户区的宽度:%d, 高度:%d."), rt.Width(), rt.Height());
	AfxMessageBox(str);
}

7.运行,点击”主框架窗口的客户区尺寸“菜单,可知宽度为:1422,高度为:758.

8.同理,为”视图窗口的客户区尺寸“菜单添加类列表为“CTest239View”的事件。

9.在事件处理程序中添加以下代码,获取CTest239View窗口的大小。

void CTest239View::OnViewSize()
{
	// TODO: 在此添加命令处理程序代码
	CRect rt;
	CString str;

	GetClientRect(&rt);
	str.Format(_T("视图窗口客户区的宽度:%d, 高度:%d"), rt.Width(), rt.Height());

	AfxMessageBox(str);
}

10.运行,点击”视图窗口的客户区尺寸“,可知宽度为:1418,高度为:708.

11.由二者宽度分别为1422和1418,相差4,这4便是视图窗口左右边框的宽度之和

12.去除视图窗口边框。

13.重新编译,执行,分别点击”主框架窗口的客户区尺寸“菜单和”视图窗口的客户区尺寸“菜单,宽度一样大了

14.将视图下的“工具栏”和“状态栏”下的勾都去掉,隐藏工具栏。

14.然后分别点击”主框架窗口的客户区尺寸“菜单和”视图窗口的客户区尺寸“菜单,宽度和高度都一样大了

相关内容

CRect的简单介绍-CSDN博客https://blog.csdn.net/qq_20725221/article/details/145987429?ops_request_misc=%257B%2522request%255Fid%2522%253A%25222d7e27e790a1888aa8763a5e159be448%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=2d7e27e790a1888aa8763a5e159be448&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-145987429-null-null.nonecase&utm_term=CRECT&spm=1018.2226.3001.4450GetClientRect()和InvalidateRect()的使用-CSDN博客https://blog.csdn.net/qq_20725221/article/details/146113799?ops_request_misc=%257B%2522request%255Fid%2522%253A%25223621a3d9096ca75d660b43ac68f79493%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=3621a3d9096ca75d660b43ac68f79493&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-146113799-null-null.nonecase&utm_term=GetClientRect&spm=1018.2226.3001.4450

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐