设置窗口客户区大小的一种办法
来源:互联网 发布:java多线程join 锁 编辑:程序博客网 时间:2024/06/01 07:19
首先,在CreateWindow函数里面填上希望的窗口客户区尺寸,例:hWnd = CreateWindow(szWindowClass, szTitle, WS_SYSMENU | WS_MINIMIZEBOX, CW_USEDEFAULT, 0, DEFAULT_WIDTH, DEFAULT_HIGHT, NULL, NULL, hInstance, NULL);
DEFAULT_WIDTH,为窗口客户区宽度,DEFAULT_HIGHT为客户区高度。再编写一下函数,用来调整窗体大小。
void SetWindowSize(HWND hWnd){ RECT WindowRect; RECT ClientRect; GetWindowRect(hWnd, &WindowRect); GetClientRect(hWnd, &ClientRect); WindowRect.right += (DEFAULT_WIDTH - ClientRect.right); WindowRect.bottom += (DEFAULT_HIGHT - ClientRect.bottom); MoveWindow(hWnd, WindowRect.left, WindowRect.top, WindowRect.right-WindowRect.left, WindowRect.bottom-WindowRect.top, true);}在创建窗体的的函数里设置窗口客户区大小主要是用作参考,这里设置的大小实际为窗体大小,其它参数自行配置。
因主题不同,所以程序的边框宽度不同,所以很难直接使用CreateWindow一次创建成功所需的窗体。
使用GetWindowRect获取到的WindowRect.left为窗体左上角距屏幕最左边的距离,WindowRect.top为窗体左上角距屏幕最上边的距离,WindowRect.right为窗体右下角距屏幕最左边的距离,WindowRect.bottom为窗体右下角距屏幕最上边的距离。
函数原型:BOOL MoveWindow( HWND hWnd, int X, int Y, int nWidth, int nHeight, BOOL bRepaint );
参数hWnd指定了窗口的句柄
x指定了CWnd的左边的新位置。
y指定了CWnd的顶部的新位置。
nWidth指定了CWnd的新宽度。
nHeight指定了CWnd的新高度。
bRepaint指定了是否要重画CWnd。如果为TRUE,则CWnd象通常那样在OnPaint消息处理函数中接收到一条WM_PAINT消息。如果这个参数为FALSE,则不会发生任何类型的重画操作。这应用于客户区、非客户区(包括标题条和滚动条)和由于CWnd移动而露出的父窗口的任何部分。当这个参数为FALSE的时候,应用程序必须明确地使CWnd和父窗口中必须重画的部分无效或重画。
- 设置窗口客户区大小的一种办法
- 设置窗口客户区大小的一种办法
- 设置窗口客户区大小的方法
- 设置窗口的客户区大小和位置
- 获取客户区大小的办法
- 在MFC的MDI程序中设置子窗口客户区大小
- 如何动态设置客户区的大小?
- 创建客户区域固定大小的窗口
- 客户区的大小
- 一种创建子视图窗口的办法
- MFC按客户区大小获取合适的主窗口大小
- 【DirecX 教程】Lesson 4: 窗口大小和客户区大小
- 根据客户区大小反推窗口大小
- Lesson 4: 窗口大小和客户区大小
- 一种更改控制台窗口大小的方法
- 最大化窗口的大小设置
- 设置Dialog窗口的大小
- 设置 AlertDialog窗口的大小
- python_在pickling的时候压缩
- 利用开源工具监控DB2数据库
- sqlplus 使用手册
- javascript 获取DropDownList选定值的方法
- 获取Eclipse的安装目录
- 设置窗口客户区大小的一种办法
- 深入探讨 Java 类加载器
- Oracle WebCenter (Sites)概述笔记
- Java开发向导页时应该注意的一个问题
- 认识HadoopDB
- 关于VS添加外部dll文件的问题
- Android 绘图
- 查看被占用的端口
- 体会HTML5的canvas元素之图表练习效果篇