根据客户区大小反推窗口大小

如何通过代码调整窗口大小以适配图片显示
本文详细介绍了如何使用C++代码调整窗口大小以确保窗口能够完美显示指定大小的图片,包括计算窗口大小的方法、设置窗口位置及居中的步骤。

窗口由客户区和非客户区组成,非客户区包括标题栏,状态栏,菜单栏等。已知客户区大小如何反推窗口大小?如果要在对话框的客户区内显示一张图片,并且要窗口的大小刚好够显示一张图片,可做如下处理。

/* 这是图片大小 */
CRect rcClient(0, 0, bmpWidth, bmpHeight);
/* 计算窗口大小,给出窗口的风格,是否有菜单等 */
AdjustWindowRectEx(rcClient, GetStyle(), menu ? TRUE : FALSE, GetExStyle());
/* 这里显示到了左上角 */
SetWindowPos(NULL, 0, 0, rcClient.Width(), rcClient.Height(), SWP_NOMOVE | SWP_NOZORDER);
/* 窗口居中 */
CenterWindow();
.版本 2 .程序集 地图解析器 .子程序 解析地图, , 公开 .参数 字节集数据, 字节集 .局部变量 宽度, 整数型 .局部变量 高度, 整数型 .局部变量 格大小, 整数型 .局部变量 总格子数, 整数型 .局部变量 起始位置, 整数型 .局部变量 i, 整数型 .局部变量 格子数据, 字节集 .局部变量 可通行, 逻辑型 ' 1. 解析地图宽高 宽度 = 取字节集数据(字节集数据, 1) + 取字节集数据(字节集数据, 2) * 256 ' 小端解析 高度 = 取字节集数据(字节集数据, 3) + 取字节集数据(字节集数据, 4) * 256 ' 小端解析 ' 2. 计算格大小根据版本) .如果 (高度 = 0) ' 异常处理 格大小 = 14 ' 默认14字节模式 总格子数 = (取字节集长度(字节集数据) - 8) / 格大小 高度 = 总格子数 / 宽度 ' 反推高度 .否则 总格子数 = 宽度 * 高度 格大小 = (取字节集长度(字节集数据) - 8) / 总格子数 .如果结束 ' 3. 遍历所有格子 起始位置 = 9 ' 跳过8字节文件头 .计次循环首 (总格子数, i) 格子数据 = 取字节集中间(字节集数据, 起始位置, 格大小) 起始位置 = 起始位置 + 格大小 ' 4. 通行判断(14字节模式) .如果真 (格大小 >= 14) 可通行 = (取字节集数据(格子数据, 11) & 1) > 0 ' 字节10的位0 可通行 = 可通行 且 (取字节集数据(格子数据, 12) == 0) ' 字节11 可通行 = 可通行 且 (位与(取字节集数据(格子数据, 13), 0x80) == 0) ' 字节12 .如果真结束 ' 此处可存储或显示通行矩阵 .计次循环尾 () 这代码给我写完整用易语言标准格式写
最新发布
09-03
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值