मैंने एक छोटा सा एप्लीकेशन लिखा है जो इन-मेमोरी छवियों पर टेक्स्ट खींचता है और उन्हें फाइलों में लिखता है। बुनियादी डेल्फी कोड के समान दिखता है:Win32 API का उपयोग कर पाठ खींचते समय मैं ClearType सेटिंग को ओवरराइड कैसे कर सकता हूं?
var
Canvas : tCanvas;
Text : WideString;
TextRect : tRect;
begin
Canvas := Bitmap.Canvas;
Canvas.Brush.Color := clBlack;
Canvas.Pen.Color := clBlack;
Canvas.Font.Name := 'Courier New';
Canvas.Font.Size := 11;
Canvas.Font.Color := clWhite;
TextRect := ...; // calculate text position
DrawTextW(Canvas.Handle, PWideChar(Text), Length(Text), TextRect, DT_NOCLIP or DT_NOPREFIX or DT_SINGLELINE or DT_CENTER or DT_VCENTER);
end;
दुर्भाग्य से तैयार पाठ आवेदन चलाने वाले कंप्यूटर की ClearType सेटिंग के आधार पर अलग है। स्थानीय ClearType सेटिंग के बावजूद मैं अपने आवेदन में लगातार आउटपुट रखना चाहता हूं (आउटपुट को स्क्रीन पर सीधे प्रदर्शित नहीं किया जाता है)। स्थानीय ClearType सेटिंग्स को ओवरराइड करने के लिए कुछ Win32 API विकल्प है?
आप एंटी-एलाइज्ड गुणवत्ता का भी उपयोग कर सकते हैं, जो पुराने स्टाइल एंटीअलाइजिंग के साथ प्रस्तुत करता है - यानी क्लीयरटाइप के बिना। यह आपको सभ्य गुणवत्ता वाला टेक्स्ट देता है जो किसी भी फ़ॉन्ट को चिकनाई के साथ खींचे गए पाठ से बेहतर दिखाई देगा। –