2009-03-05 3 views
1

Я нахожу, что я не могу изменить размер шрифта, даже если создаю его с помощью win32 pinvoke. Я использую Graphics.DrawString для использования шрифта. Я в тупике и ничего не могу найти по этому поводу.System.Drawing: как контролировать вес шрифта?

[DllImport("gdi32.dll")] 
static extern IntPtr CreateFont(int nHeight, int nWidth, int nEscapement, 
    int nOrientation, int fnWeight, uint fdwItalic, uint fdwUnderline, uint 
    fdwStrikeOut, uint fdwCharSet, uint fdwOutputPrecision, uint 
    fdwClipPrecision, uint fdwQuality, uint fdwPitchAndFamily, string lpszFace); 

private void CreateLabelFont() 
{ 
    // Remove -13 magic number later. 
    IntPtr hFont = CreateFont(-13, 0, 0, 0, 100, 0, 0, 0, 1, 0, 0, 0, 0, "Arial\0"); 
    labelFont = Font.FromHfont(hFont); 
} 

ответ

1

Из MSDN ссылки для CreateFont:

fnWeight [в] Определяет вес шрифта в диапазоне от 0 до 1000. Например, 400 является нормальным и 700 выделены жирным шрифтом. Если это значение равно нулю, используется вес по умолчанию.

Это означает, что вы устанавливаете вес при создании шрифта. Если вам нужны разные шрифты, вам нужно будет позвонить по номеру CreateFont несколько раз.

+0

И предоставленный код с fnWeight = 700 отображает жирный текст, как ожидалось. –

+0

То, как я это делаю, должно работать. Я думаю, что у меня может возникнуть проблема с сложным графическим преобразованием, когда я рисую шрифт. –

+0

Затем покажите нам еще код. И проверьте возвращаемые значения. – dirkgently

Смежные вопросы