このコード ブロックを使用して、ユーザーが 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 を取得するにはどうすればよいですか? 助けてください...