سؤال

أنا أستخدم كتلة التعليمات البرمجية هذه للحصول على اسم الخط، والأسلوب والحجم المحدد من قبل المستخدم من مربع حوار الخط من CMFCPropertyFontProperty. أنا قادر بالفعل على الحصول على الاسم والأسلوب، ولكن يبدو أن الحجم يعيد قيمة مختلفة.

** cmfcpropertygridproperty * picursel = m_wndproplist.getcursel ()؛ cmfcpropertygridfontproperty * pfontprop = dynamic_cast (pcursel)؛

إذا (pfontprop) {

lprogfont font_info = pfontprop-> getlogfont ()؛

int nsize = 0؛

nsize = font_info-> lfheight؛

// nsize يبدو أنه يعيد قيمة سلبية ... :(

}**

أدرك أن هناك صيغة لذلك: LFHEight = -Muldiv (يشير، getDevicecaps (HDC، logpixelsy)، 72)؛

لكنني لا أستطيع أن أبدو أنها تعمل ... كيف أحصل على HDC من cmfcpropertyfontproperty؟ الرجاء المساعدة ...

هل كانت مفيدة؟

المحلول

يمكنك فقط استخدام GetDC (NULL)؛ للحصول على HDC للشاشة التي أفترض أنها ستكون هي نفسها كما سيستخدم مربع حوار الخط.

تصف وثائق LogFont معنى + VE وقيم -ve لحضور عضو LFHEight،

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top