【转贴】如何调整窗口以适应客户区大小
来源:互联网 发布:数据库设计的最后阶段 编辑:程序博客网 时间:2024/06/05 19:13
原文出处:http://www.cppblog.com/bidepan2023/archive/2009/03/02/32900.html
作者:懒人
假设我们用CreateWindow(..., 0, 0, w, h, ...); 创建一个窗口, 我们将获得一个w x h大小的窗口, 通常我们需要的是客户区大小为w x h,
如何做呢?
一个方法是调用API函数SetWindowPos, 通常我们需要提供3个参数:窗口句柄hwnd,窗口宽度w,窗口高度h。下面是一个示例:
现在的问题是我们只知道客户区的大小w x h, 如何获取窗口大小呢?
这里的关键是
wWindow = wClient + wFrame * 2
hWindow = hClient + hCaption + hMenu + hFrame * 2
其中wFrame, hCaption, hMenu, hFrame取值则需要根据窗口样式而定了。
如果窗口提供了Caption, 则hCaption=GetSystemMetrics(SM_CYCAPTION); 否则为0
如果窗口提供了菜单, 则hMenu=GetSystemMetrics(SM_CYMENU); 否则为0
如果窗口提供了Border, 则wFrame=GetSystemMetrics(SM_CXFRAME),hFrame=GetSystemMetrics(SM_CYFRAME); 否则为0
综合起来,如果窗口具有标题栏,具有菜单,具有border,我们可以这样创建一个指定客户区w x h大小的窗口:
MFC的方法则更加简单
在Create()或者CreateEx()创建窗口以后, 用下面的代码调整窗口的大小。
- 【转贴】如何调整窗口以适应客户区大小
- 如何调整窗口以适应客户区大小
- ubuntu remmina 调整窗口大小以适应远程分辨率
- 调整文本框大小以适应内容
- 如何调整窗口的大小?
- MFC单文档调整客户区大小
- 自动适应窗口大小
- 自动适应窗口大小
- 如何调整Softice窗口显示大小
- 如何调整Android的窗口大小
- 虚拟机窗口不能调整大小如何解决?
- QTextEdit 适应内容调整大小
- 设置窗口客户区大小的方法
- Android 自定义TextView实现文本内容自动调整字体大小以适应TextView的大小
- Android 自定义TextView实现文本内容自动调整字体大小以适应TextView的大小
- 控件适应窗口大小变化
- 如何包装窗口的部分非客户区并控制其大小
- 如何包装窗口的部分非客户区并控制其大小
- vim正常显示gbk编码文件
- 下拉菜单,支持所有浏览器
- Hibernate fetch lazy cascade inverse 关键字 【转】
- Twisted教程-客户端
- 新蛋中国最新的分类导航,右侧展开菜单,可以修改向左或者向右展开
- 【转贴】如何调整窗口以适应客户区大小
- 传智播客学习之HTML
- 如何在wince下注册COM组件?
- 一次强烈的对比_差距(关于电话界面的学习)在此一并表示给出此代码的那位朋友的感谢
- EL--2
- windows service 服务部署安装命令
- Java下实现快速排序
- oracle api小结
- 标题固定和嵌入图标tileIcon的Alert如何写