前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mfc 中利用设备描述表(dc)绘制图案

mfc 中利用设备描述表(dc)绘制图案

作者头像
我与梦想有个约会
发布2023-10-20 18:33:13
1010
发布2023-10-20 18:33:13
举报
文章被收录于专栏:jiajia_dengjiajia_deng

DC(Device Context)在程序中,可以形象的理解为就是一块画布,在画画之前,你要选择好画笔,给画笔蘸上颜色,决定要写字还是画画等等,这些形象的比喻在 mfc 中都有对应的类去实现,大家可以参考下面两篇文章,本文只记录一些特殊的方法,方便以后翻阅查询:


MFC GDI绘图基础http://blog.csdn.net/phunxm/article/details/5083119 关于设备描述表:http://blog.sina.com.cn/s/blog\_5dbf4a610100ofzh.html

获取 DC 中字体信息

代码语言:javascript
复制
// 获取 DC 中字体的信息
TEXTMETRIC tm;
hDC.GetTextMetrics(&tm);
TEXTMETRIC 是一个结构体,其中包含了在 DC 中字体的各种信息。如下:
typedef struct tagTEXTMETRICW
{
    LONG        tmHeight; // 字体高度
    LONG        tmAscent;
    LONG        tmDescent;
    LONG        tmInternalLeading;
    LONG        tmExternalLeading;
    LONG        tmAveCharWidth;
    LONG        tmMaxCharWidth;
    LONG        tmWeight;
    LONG        tmOverhang;
    LONG        tmDigitizedAspectX;
    LONG        tmDigitizedAspectY;
    WCHAR       tmFirstChar;
    WCHAR       tmLastChar;
    WCHAR       tmDefaultChar;
    WCHAR       tmBreakChar;
    BYTE        tmItalic;
    BYTE        tmUnderlined;
    BYTE        tmStruckOut;
    BYTE        tmPitchAndFamily;
    BYTE        tmCharSet;
} TEXTMETRICW, *PTEXTMETRICW, NEAR *NPTEXTMETRICW, FAR *LPTEXTMETRICW;
每一个参数所代表的意义:https://msdn.microsoft.com/zh-cn/vstudio/dd145132(v=vs.90).aspx

获取 DC 背景色

代码语言:javascript
复制
// 获取 DC 的背景色
COLORREF color = hDC.GetBkColor();
// 设置 DC 绘制字体时的颜色与背景色一致
color = hDC.SetTextColor(color);

上面示例获取了 DC 的背景色以后有将背景色设置为字体颜色,这样写出来的字就与背景色一致了(看不到写出来的字)。

返回一个字符串在 DC 中的宽度

代码语言:javascript
复制
CSize size = hDC.GetTextExtent(m_str);
// 返回的 size.cx 是长度
// 返回的 size.cy 是高度
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015-07-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 获取 DC 中字体信息
  • 获取 DC 背景色
  • 返回一个字符串在 DC 中的宽度
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档