سؤال

افترض أن لديك سلسلة مع نص في نصصين أو أكثر. عند استخدام وظيفة GDI مثل TextOut, ، (الإصدارات الحديثة من) سوف يقوم Windows بعمل "ربط الخط". هذا هو، سوف يرسم GDI ما يمكنه مع الخط الذي تم اختياره ورسم الباقي في خط مناسب يختاره تلقائيا. على سبيل المثال، إذا كان جزء من النص الخاص بك باللغة الإنجليزية (باستخدام الأبجدية الرومانية)، وجزء منه صيني (باستخدام أحرف CJK)، ولديك Arial المحدد، سيتم سحب الجزء الإنجليزي في Arial، والجزء الصيني يتم رسمها في خط آخر يحتوي على الحروف الرسومية CJK.

سؤالي هو، هل هناك طريقة لتحديد الخطوط TextOut سوف تختار (أو اخترت) لربط الخط؟

لا بد لي من رسم بعض النص مع واجهة برمجة تطبيقات UPI منخفض المستوى، والتي لا تقوم بربط الخط التلقائي. لقد قمت بتنفيذ ربط الخط الخاص بي، لكن في بعض الأحيان يختار خوارزمية خطا مختلفا TextOut يفعل لنفس النص. أحاول فهم خوارزمية Windows بشكل أفضل، لكنني لست جيدا جيدا عند تحديد الخطوط في الأفق (خاصة في البرامج النصية غير المألوفة).

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

المحلول

يتم تحديد الخط بواسطة إدخال التسجيل. هو موضح جيدا في هذه المقالة. نقلا عن الجزء ذات الصلة:

إذا تم تمكين ربط الخطوط على جهازك، فيمكنك فحص السجل عن طريق تعداد المفاتيح الفرعية من مفتاح التسجيل في HKEY_LOCAL_MACHINE Software Microsoft Windows NT CurrentVersion FontLink Systemslink لتحديد تعيينات الخطوط المرتبطة بخطوط الأساس. يمكنك إضافة روابط باستخدام REGEDIT لإنشاء مفاتيح مفاتيح إضافية.

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