我在C++中使用GDI +。 (这个问题也可能存在于C#中)。MeasureString()填充左侧和右侧的文本
我注意到,无论何时我调用Graphics :: MeasureString()或Graphics :: DrawString(),字符串都会在左侧和右侧用空格填充。例如,如果我使用Courier字体(不斜体!),并测量“P”,则获得90,但“PP”会获得150.我希望等宽字体可以给出宽度的两倍为“PP”。
我的问题是:这是打算或记录的行为,我该如何禁用?
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;
使用TextRenderer类可以获得更好的结果。 – Bitterblue 2013-12-02 15:01:51
TextRenderer正是我在类似情况下所需要的 – Rob 2014-07-30 10:45:36