如何从 CMFCPropertyFontProperty 获取字体大小

发布于 2024-08-01 13:36:15 字数 641 浏览 6 评论 0 原文

我使用此代码块获取用户从 CMFCPropertyFontProperty 控件的字体对话框中选择的字体名称、样式和大小。 我已经能够获取名称和样式,但大小似乎返回不同的值。

CMFCPropertyGridProperty* pCurSel = m_wndPropList.GetCurSel();
CMFCPropertyGridFontProperty* pFontProp = dynamic_cast<CMFCPropertyGridFontProperty*>(pCurSel);

if (pFontProp) {
  LPLOGFONT font_info = pFontProp->GetLogFont();
  INT nSize = 0;
  nSize = font_info->lfHeight;
  //nSize seems to return a negative value... :(
}

我意识到有一个公式:

lfHeight = -MulDiv(PointSize, GetDeviceCaps(hDC, LOGPIXELSY), 72);

但我似乎无法让它工作...我如何从 CMFCPropertyFontProperty 获取 hDC? 请帮忙...

I'm using this code block to get the font name, style and size selected by the user from the font dialog of CMFCPropertyFontProperty control. I'm already able to get the name and the style, but the size seems to return a different value.

CMFCPropertyGridProperty* pCurSel = m_wndPropList.GetCurSel();
CMFCPropertyGridFontProperty* pFontProp = dynamic_cast<CMFCPropertyGridFontProperty*>(pCurSel);

if (pFontProp) {
  LPLOGFONT font_info = pFontProp->GetLogFont();
  INT nSize = 0;
  nSize = font_info->lfHeight;
  //nSize seems to return a negative value... :(
}

I realize that there's a formula for it:

lfHeight = -MulDiv(PointSize, GetDeviceCaps(hDC, LOGPIXELSY), 72);

But I can't seem to get it working... how do I get the hDC from CMFCPropertyFontProperty? please help...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

木森分化 2024-08-08 13:36:15

您可以只使用 GetDC(NULL); 获取屏幕的 HDC,我认为它与字体对话框将使用的相同。

LOGFONT 文档描述了 lfHeight 成员的 +ve 和 -ve 值的含义,

http://msdn.microsoft.com/en-us/library/dd145037(VS.85).aspx

You can just use GetDC(NULL); to get an HDC for the screen which I assume will be the same as what the font dialog will use.

The LOGFONT documentation describes the meaning of +ve and -ve values for the lfHeight member,

http://msdn.microsoft.com/en-us/library/dd145037(VS.85).aspx

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文