मैं सी ++ में जीडीआई + का उपयोग कर रहा हूं। (यह समस्या सी # में भी मौजूद हो सकती है)।MeasureString() बाईं ओर पाठ को पैड करता है और दाएं
मुझे लगता है कि जब भी मैं ग्राफिक्स :: MeasureString() या ग्राफिक्स :: DrawString() को कॉल करता हूं, तो स्ट्रिंग को बाएं और दाएं खाली स्थान के साथ गद्देदार किया जाता है।
उदाहरण के लिए, यदि मैं एक कूरियर फ़ॉन्ट का उपयोग कर रहा हूं, (इटैलिक नहीं!) और मैं "पी" को मापता हूं तो मुझे 9 0 मिलते हैं, लेकिन "पीपी" मुझे 150 देता है। मुझे उम्मीद है कि एक मोनोस्पेस फ़ॉन्ट चौड़ाई को दोगुना कर देगा "पीपी" के लिए।
मेरा प्रश्न है: क्या यह इरादा या दस्तावेज व्यवहार है, और मैं इसे कैसे अक्षम कर सकता हूं?
RectF Rect(0,0,32767,32767);
RectF Bounds1, Bounds2;
graphics->MeasureString(L"PP", 1, font, Rect, &Bounds1);
graphics->MeasureString(L"PP", 2, font, Rect, &Bounds2);
margin = Bounds1.Width * 2 - Bounds2.Width;
मुझे टेक्स्टरेंडर क्लास के साथ बेहतर परिणाम मिलते हैं। – Bitterblue
टेक्स्ट रेन्डरर बिल्कुल वैसा ही था जो मुझे इसी तरह की स्थिति में चाहिए – Rob
टेक्स्ट रेन्डरर ने भी मेरे लिए बहुत बेहतर काम किया – Migs