QQ登录

只需一步,快速开始

搜索
【活动】边做笔记边学习,还能赢取奖学金!
查看: 113|回复: 0

[学习笔记] 《Windows SDK》011 获取窗口的各种尺寸

[复制链接]
累计签到:49 天
连续签到:25 天
最佳答案
3 
发表于 2017-7-12 12:28:27 | 显示全部楼层 |阅读模式

马上注册加入鱼C,享用更多服务吧^_^

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 BngThea 于 2017-7-15 09:56 编辑

一 核心知识点
* 设备独立性
将所有外部设备视作文件来处理,只需要安装好其驱动程序就能使用统一的方式操作该外部设备

* 获得系统各种规格
利用GetSystemMetrics函数来获取系统的绝大多数项目的规格尺寸信息

* 正确处理比例字体
cxCaps = (tm.tmPitchAndFamily & 1 ? 3 : 2) * cxChar / 2;
TEXTMETRIC结构中的成员tmPitchAndFamily用于判定是否为比例字体,通过上述语句可以实现比例字体中大写字母的宽度正确值,流程如下:
1 将该成员和1 做与运算,由于比例字体下该成员的值为1,结果为1,等宽字体时该成员值为0,结果为0
2 根据三目运算符得到3 或 2
3 将其与小写字母宽度相乘再除以2即可得到当前字符的正确宽度

* 灵活运用各种API函数设置文本输出格式
主要的设置方式有SetTextAlign + TextOut或DrawText,但结合GetSystemMetrics以及GetClientRECT来灵活设置文本的各种输出格式

二 新API函数
* GetSystemMetrics(SM_CXSCREEN)
该函数用来获取系统某个项目的规格尺寸信息

1 由于系统默认的项目非常多,所以该函数的参数可选项极其多
2 该函数获取的值均是以像素为单位

本帖被以下淘专辑推荐:

1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋手机版Archiver( 粤公网安备 44051102000370号 | 粤ICP备11014136号

© 2010-2017 FishC.com GMT+8, 2017-7-28 12:32 Powered by Discuz! X2.5 Theme by dreambred

快速回复 返回顶部 返回列表