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 に答える