أنت غير متصل حاليًا، وفي انتظار الإنترنت الخاص بك ليقوم بإعادة الاتصال

INFO: حساب في الارتفاع المنطقي "و" حجم نقطة الخط

هام: تمت ترجمة هذا المقال باستخدام برنامج ترجمة آلية لشركة مايكروسوفت بدلاً من الاستعانة بمترجم بشري. تقدم شركة مايكروسوفت كلاً من المقالات المترجمة بواسطة المترجمين البشر والمقالات المترجمة آليًا وبالتالي ستتمكن من الوصول إلى كل المقالات الموجودة في قاعدة المعرفة الخاصة بنا وباللغة الخاصة بك. بالرغم من ذلك، فإن المقالة المترجمة آليًا لا تكون دقيقة دائمًا وقد تحتوي على أخطاء إملائية أو لغوية أو نحوية، مثل تلك الأخطاء الصادرة عن متحدث أجنبي عندما يتحدث بلغتك. لا تتحمل شركة مايكروسوفت مسئولية عدم الدقة أو الأخطاء أو الضرر الناتج عن أية أخطاء في ترجمة المحتوى أو استخدامه من قبل عملائنا. تعمل شركة مايكروسوفت باستمرار على ترقية برنامج الترجمة الآلية

اضغط هنا لرابط المقالة باللغة الانجليزية74299
الموجز
لإنشاء خط في بيئة رسومية Microsoft Windows إعطاء حجم نقطة المطلوبة يجب تطبيق حساب المنطقية ارتفاع الخط بسبب استخدام دالتي CreateFont() و CreateFontIndirect() الوحدات المنطقية لتحديد الارتفاع.

لوصف خط للمستخدم يمكن تطبيق حساب حجم النقطة خط إعطاء ارتفاعها. توفر هذه المقالة الصيغ المطلوبة لتنفيذ هذه الحسابات وضع تعيين MM_TEXT. يجب اشتقاق معادلة جديدة لحساب حجم الخط في وضع تعيين آخر.
معلومات أخرى
لحساب ارتفاع المنطقية استخدم الصيغة التالية:
                                Point Size * LOGPIXELSY   height = Internal Leading + -------------------------                                          72				
LOGPIXELSY هو عدد وحدات البكسل في بوصة منطقية على الجهاز. يتم الحصول على هذه القيمة بواسطة استدعاء دالة GetDeviceCaps() مع فهرس LOGPIXELSY. قيمة 72 الهامة بوصة واحدة على 72 نقطة.

المشكلة باستخدام هذه العملية الحسابية توجد طريقة لتحديد داخلي البادئة للخط لأنه لم يتم إنشاؤه. كمحاولة للتغلب على هذه الصعوبة استخدم التباين التالية الصيغة:
            -(Point Size * LOGPIXELSY)   height = --------------------------                         72				
قد كما يمكن كتابة هذه الصيغة كما يلي:
   plf->lfHeight = -MulDiv (nPtSize, GetDeviceCaps (hdc, LOGPIXELSY), 72);				
عند تطبيق يستدعي CreateFont() أو الدالات CreateFontIndirect() ويقوم بتحديد قيمة سالبة للمعلمة ارتفاع معين الخط يوفر تطابقاً ارتفاع الحرف بدلاً من ارتفاع الخلية. الفرق بين ارتفاع الخلية والارتفاع الحرف هو المسافة الإضافية الداخلية كما هو موضّح بواسطة الرسم التخطيطي التالي:
   ----------  <------------------------------   |        |           |- Internal Leading  |   | |   |  |  <---------                    |   | |   |  |        |                       |- Cell Height   | |---|  |        |- Character Height     |   | |   |  |        |                       |   | |   |  |        |                       |   ----------  <------------------------------				
الصيغة التالية يحسب حجم نقطة الخط:
                (Height - Internal Leading) * 72   Point Size = --------------------------------                           LOGPIXELSY				
يتم الحصول على قيم الارتفاع "و" الداخلية البادئة من بنية بيانات TEXTMETRIC. يتم الحصول على قيمة LOGPIXELSY من دالة GetDeviceCaps كما هو موضح أعلاه.

مدورة المحسوب أشر الحجم إلى أقرب عدد صحيح. الدالة Windows MulDiv() تقريب النتيجة الخاصة بها وتقوم يعتبر اختيار ممتاز لإجراء عملية حسابية السابقة.
3.00 3.10 3.50 4.00 win16sdk تروتايب

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 74299 - آخر مراجعة: 11/21/2006 15:47:12 - المراجعة: 3.2

Microsoft Windows Software Development Kit 3.1, Microsoft Win32 واجهة برمجة تطبيقات

  • kbmt kbinfo KB74299 KbMtar
تعليقات
t=">