如何从CMFCPropertyFontProperty获取字体大小

时间:2009-08-17 06:05:31

标签: c++ visual-c++ mfc-feature-pack font-size

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

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

if(pFontProp){

LPLOGFONT font_info = pFontProp-> GetLogFont();

INT nSize = 0;

nSize = font_info-> lfHeight;

// nSize似乎返回负值...... :(

} **

我意识到它有一个公式: lfHeight = -MulDiv(PointSize,GetDeviceCaps(hDC,LOGPIXELSY),72);

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

1 个答案:

答案 0 :(得分:0)

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

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

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