1

我发现我无法更改字体粗细,即使我是通过 win32 pinvoke 创建的。我正在使用 Graphics.DrawString 来使用字体。我很困惑,找不到任何东西。

[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);
}
4

1 回答 1

1

来自 MSDN 参考CreateFont

fnWeight [in] 在 0 到 1000 范围内指定字体的粗细。例如,400 是正常的,700 是粗体。如果此值为零,则使用默认权重。

这意味着您在创建字体时固定权重。如果您需要不同的字体粗细,则必须CreateFont多次调用。

于 2009-03-05T23:59:09.147 回答