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

كيفية حساب الوحدات الأساسية الحوار بخط غير النظام - المستندة

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

اضغط هنا لرابط المقالة باللغة الانجليزية125681
الموجز
توضح هذه المقالة كيفية حساب الوحدة الأساسية الحوار لمربع الحوار باستخدام خط غير "خط النظام" في نظام التشغيل Windows 95. يمكنك استخدام هذا الحساب إلى إنشاء قوالب مربع الحوار في الذاكرة أو حساب أبعاد مربع الحوار.
معلومات أخرى
يحتوي كل قالب في مربع الحوار القياسات تحديد موضع العرض والارتفاع مربع الحوار وعناصر التحكم يحتوي. هذه القياسات جهاز مستقل, لذلك يمكن للتطبيق استخدام قالب واحد لإنشاء نفس مربع حوار كافة أنواع أجهزة عرض. هذا يضمن أن مربع حوار سيقوم لديك نسب نفس المظهر على كافة شاشات بالرغم من دقة مختلفة نسب العرض إلي الارتفاع بين شاشات.

مزيد من ، يتم إعطاء القياسات مربع الحوار وحدات الأساس الحوار. تساوي وحدة الأساس أفقي واحد ربع عرض الأحرف متوسط خط النظام. تساوي وحدة الأساس عمودي واحد واحد الثامن ارتفاع الحرف متوسط خط النظام. يمكن تطبيق استرداد عدد وحدات البكسل لكل وحدة الأساس للعرض الحالي باستخدام الدالة GetDialogBaseUnits. الكلمة ذو الترتيب المنخفض قيمة الإرجاع من دالة GetDialogBaseUnits على الوحدات الأساسية أفقي وتحتوي على كلمة ذات الترتيب العالي قيمة الإرجاع من دالة GetDialogBaseUnits الوحدات الأساسية عمودي.

استخدام هذه المعلومات, الذي يمكن لحساب الوحدات الأساسية الحوار لمربع حوار استخدام خط غير خط النظام:
horz pixels == 2 * horz dialog units * (average char width  of dialog font                        / average char width of system font)vert pixels == 2 * vert dialog units * (average char height of dialog font                        / average char height of system font)				
باسم الخط التغييرات مربع الحوار "الحجم الفعلي" و "موضع عنصر التحكم أيضاً إلى تغيير.

وحدة الأساس مربع حوار واحد يساوي عدد وحدات البكسل لكل وحدة مربع الحوار كما يلي:
1 horz dialog base unit == (2 * average char width  dialog font /                                 average char width  system font) pixels1 vert dialog base unit == (2 * average char height dialog font /                                 average char height system font) pixels				
حرف متوسط عرض وارتفاع خط يمكن يتم حسابها كما يلي:
hFontOld = SelectObject(hdc,hFont);GetTextMetrics(hdc,&tm);GetTextExtentPoint32(hdc,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrst"            "uvwxyz",52,&size);avgWidth = (size.cx/26+1)/2;avgHeight = (WORD)tm.tmHeight;				
حقل tmAveCharWidth بنية TEXTMETRIC فقط approximates عرض الأحرف متوسط الفعلية (عادةً فإنه يعطي عرض الحرف "x") و لذا يجب أن يكون حساب عرض الأحرف متوسط صحيحاً إلى تطابق القيمة المستخدمة من قبل النظام.

يمكنك استخدام الدالة MapDialogRect لتحويل وحدات مربع الحوار إلى بكسل ولكن هناك لم دالة سيتم تحويل وحدات البكسل إلى وحدات مربع الحوار. يمكنك استخدام الصيغ المعروضة هنا لتنفيذ هذا التحويل.
مراجع
للحصول على مزيد من المعلومات حول هذا الموضوع الرجاء مراجعة المقالة التالية في "قاعدة المعارف لـ Microsoft:
145994كيفية حساب وحدات الحوار عند عدم استخدام خط نظام

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

خصائص

رقم الموضوع: 125681 - آخر مراجعة: 07/11/2005 19:29:53 - المراجعة: 2.3

Microsoft Platform Software Development Kit-January 2000 Edition

  • kbmt kbdlg kbhowto KB125681 KbMtar
تعليقات
>/html>t/JavaScript" async=""> var varAutoFirePV = 1; var varClickTracking = 1; var varCustomerTracking = 1; var Route = "76500"; var Ctrl = ""; document.write(" id="{{'language-'+language.locale}}" href="" ng-click="setLanguage(language);" class="ng-binding" id="language-es-ve">Venezuela - Español
/c1.microsoft.com/c.gif?DI=4050&did=1&t=">&did=1&t=">rotocol) + "//c.microsoft.com/ms.js'><\/script>"); src="https://c.microsoft.com/ms.js">