2009-08-17 18 views
0

J'utilise ce bloc de code pour obtenir le nom de police, le style et la taille sélectionnés par l'utilisateur à partir de la boîte de dialogue de police du contrôle CMFCPropertyFontProperty. Je suis déjà en mesure d'obtenir le nom et le style, mais la taille semble renvoyer une valeur différente.Comment obtenir la taille de police de CMFCPropertyFontProperty

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

if (pFontProp) {

LPLOGFONT font_info = pFontProp-> GetLogFont();

INT nSize = 0;

nSize = font_info-> lfHauteur;

// nTaille semble retourner une valeur négative ... :(

} **

Je me rends compte qu'il ya une formule pour elle: lfHeight = -MulDiv (PointSize, GetDeviceCaps (hdc, LOGPIXELSY), 72);

Mais je ne peux pas sembler le faire fonctionner ... comment puis-je obtenir le hDC de CMFCPropertyFontProperty s'il vous plaît aider ...

Répondre

0

Vous pouvez simplement utiliser GetDC (NULL)?; pour obtenir un HDC pour l'écran que je suppose sera le même que ce que la boîte de dialogue de police va utiliser.

La documentation LOGFONT décrit le sens de + ve et les valeurs -ve pour le membre lfHeight,

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