社区
图形处理/算法
帖子详情
如何在LOGFONT与GDI+的Font类之间进行互相转换?
microyzy
2003-10-15 05:35:59
我使用CFontDialog来让用户选择字体,可以得到一个LOGFONT,但是不知怎么转换到GDI+的Font对象中
Font对象有一个构造函数,
Font( HDC hdc,
const LOGFONTA *logfont
);
我将控件或者窗口的HDC传过去,结果Font对象不可用
...全文
311
13
打赏
收藏
如何在LOGFONT与GDI+的Font类之间进行互相转换?
我使用CFontDialog来让用户选择字体,可以得到一个LOGFONT,但是不知怎么转换到GDI+的Font对象中 Font对象有一个构造函数, Font( HDC hdc, const LOGFONTA *logfont ); 我将控件或者窗口的HDC传过去,结果Font对象不可用
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
玄山
2003-10-21
打赏
举报
回复
难道你自己不知道Font的size吗?为什么一定要使用logFont里的lfHeight呢。
建议使用自己定义的Font的dXFontSize和dYFontSize,要什么都使用logFont里的信息,还不如直接使用GDI好了,速度还快。
microyzy
2003-10-21
打赏
举报
回复
等待ing
microyzy
2003-10-21
打赏
举报
回复
我使用GDI+的Grapics类来在图像上输出文字,所以要使用Font对象
如题目,我没说必须使用LOGFONT的,我的目的只是使用CFontDialog来选择字体,然后转换到Font后再使用Graphics来画文字,因此现在我时得到了从CFontDialog返回的LOGFONT,但是不知道对应的,Font对象的size应该设置为多少好
microyzy
2003-10-16
打赏
举报
回复
我跟踪了一下,发现LOGFONT.Height经常是负值?
microyzy
2003-10-16
打赏
举报
回复
我目前也是这样做的,这些属性我已经可以处理好,关键是Font.size和LOGFONT.Height Weight之间的转换我不知道怎么处理
玄山
2003-10-16
打赏
举报
回复
GDI+中的字体属性如下:
enum FontStyle{
FontStyleRegular = 0,
FontStyleBold = 1,
FontStyleItalic = 2,
FontStyleBoldItalic = 3,
FontStyleUnderline = 4,
FontStyleStrikeout = 8
};
你可以根据LOGFONT中的属性再设置相应的值。
FontStyle fontStyle = FontStyleRegular;
if(logFont.lfItalic)
fontStyle |= FontStyleItalic;
我没有直接使用Font(HDC hdc, LOGFONT* logfont)函数。
microyzy
2003-10-16
打赏
举报
回复
那我怎么处理Font的size?
玄山
2003-10-16
打赏
举报
回复
logFont.Weight == 400或500 近似于FontStyleRegular,
logFont.Weight == 700或800 近似于FontStyleBold;
lofFont.Height是负值属正常现象。
microyzy
2003-10-15
打赏
举报
回复
??
microyzy
2003-10-15
打赏
举报
回复
这样是不是只是继承了字体的名称?
microyzy
2003-10-15
打赏
举报
回复
wqp的代码,没看出怎么转换了:(能说说吗
这样包括下划线、倾斜、粗体等属性也能转过去吗?
玄山
2003-10-15
打赏
举报
回复
上面代码中SetFontSize(dXSize,dYSize,logFont)去掉,那是从我自己的代码中拷出来没删掉的,呵
玄山
2003-10-15
打赏
举报
回复
LOGFONT logFont;
SetFontSize(dXSize,dYSize,logFont);
FontFamily fontFamily(logFont.lfFaceName);
FontStyle fontStyle; //= FontStyleRegular;
Font font(&fontFamily,static_cast<float>(dFontSize),fontStyle,UnitPixel);
基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南(四) 使用 GDI 函数
通过 GDI,GUI 程序就可以在计算机屏幕上,或者其他的显示设备上
进行
图形输出,包括基本绘图和文本输出。本文将详细描述 MiniGUI 中的 GDI 函数,并举例说明重要函数的用法。其中包括:DC 的概念、获取和释放;矩形...
基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南四——使用 GDI 函数
简介: 本文讲述 MiniGUI 中 GDI 函数及其使用。主要包括:设备上下文的概念、获取和释放;矩形操作和区域操作;...通过 GDI,GUI 程序就可以在计算机屏幕上,或者其他的显示设备上
进行
图形输出,包括基本绘图
MINIGUI 开发指南---GDI
本文讲述 MiniGUI 中 GDI 函数及其使用。主要包括:设备上下文的概念、获取和释放;矩形操作和区域操作;...通过 GDI,GUI 程序就可以在计算机屏幕上,或者其他的显示设备上
进行
图形输出,包括基本绘图和文本输出。
图形设备接口
图形设备接口 事实上,图形设备接口(Graphics Device Interface,GDI)是指这样的一个可...GDI可以看作是一个应用程序与输出设备
之间
的中介,一方面,GDI向应用程序提供了一个设备无关的编程环境,另一方面,它又以设
孙鑫《vc ++深入详解》第十章绘图控制
1.绘制点COLORREF SetPixel( POINT point, COLORREF crColor );...crect
类
重载了LPCRECT 操作符,其作用是将CRect
转换
为LPCRECT
类
型operator LPCRECT( ) const;//Converts a CRect to an LPCRECT.
图形处理/算法
19,468
社区成员
50,698
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章