我正在使用此代码块来获取用户从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?请帮忙......
答案 0 :(得分:0)
你可以使用GetDC(NULL);获取屏幕的HDC,我假设它与字体对话框将使用的相同。
LOGFONT文档描述了lfHeight成员的+ ve和-ve值的含义,
http://msdn.microsoft.com/en-us/library/dd145037(VS.85).aspx