设置窗口客户区大小的一种办法
来源:互联网 发布:f22和歼20数据对比 编辑:程序博客网 时间:2024/05/21 17:57
首先,在CreateWindow函数里面填上希望的窗口客户区尺寸,例:hWnd =CreateWindow(szWindowClass, szTitle,
DEFAULT_WIDTH,为窗口客户区宽度,DEFAULT_HIGHT为客户区高度。再编写一下函数,用来调整窗体大小。
[cpp] view plaincopy
- void
SetWindowSize( HWNDhWnd) - {
-
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为窗体右下角距屏幕最上边的距离。
函数原型:BOOLMoveWindow( HWND hWnd, int X, int Y, int nWidth, int nHeight, BOOLbRepaint );
参数hWnd指定了窗口的句柄
x指定了CWnd的左边的新位置。
y指定了CWnd的顶部的新位置。
nWidth指定了CWnd的新宽度。
nHeight指定了CWnd的新高度。
bRepaint指定了是否要重画CWnd。如果为TRUE,则CWnd象通常那样在OnPaint消息处理函数中接收到一条WM_PAINT消息。如果这个参数为FALSE,则不会发生任何类型的重画操作。这应用于客户区、非客户区(包括标题条和滚动条)和由于CWnd移动而露出的父窗口的任何部分。当这个参数为FALSE的时候,应用程序必须明确地使CWnd和父窗口中必须重画的部分无效或重画。
0 0
- 设置窗口客户区大小的一种办法
- 设置窗口客户区大小的一种办法
- 设置窗口客户区大小的方法
- 设置窗口的客户区大小和位置
- 获取客户区大小的办法
- 在MFC的MDI程序中设置子窗口客户区大小
- 如何动态设置客户区的大小?
- 创建客户区域固定大小的窗口
- 客户区的大小
- 一种创建子视图窗口的办法
- MFC按客户区大小获取合适的主窗口大小
- 【DirecX 教程】Lesson 4: 窗口大小和客户区大小
- 根据客户区大小反推窗口大小
- Lesson 4: 窗口大小和客户区大小
- 一种更改控制台窗口大小的方法
- 最大化窗口的大小设置
- 设置Dialog窗口的大小
- 设置 AlertDialog窗口的大小
- 跟我一起写 Makefile(九) 转自http://blog.csdn.net/haoel/article/details/2894
- 一个进程可以malloc多少空间,由malloc引发的killed
- android parse 使用笔记
- 给年轻人的话
- Windows SDK 标准窗口程序
- 设置窗口客户区大小的一种办法
- C字符串分割
- 关于调用子函数给主函数指针分配内…
- 关于嵌入式
- 根据开发语言或习惯 Visual Studio 设置默认环境
- C文件操作;数据文件读取
- Intellij 中怎么设置这个?
- 跟我一起写 Makefile(十) 转自http://blog.csdn.net/haoel/article/details/2895
- memcached学习