いくつかの検索の後、私はそれを機能させました。これをどのように解決したかを共有したいと思います: AddFontFile は間違った API でした代わりに AddFontResource を使用する必要がありました
String fontPath = @"C:\Temp\Font2\GXSTRA03.PFM|C:\Temp\Font2\GXSTRA03.PFB";
int result = AddFontResource(fontPath);
long msg = SendMessage(HWND_BROADCAST, WM_FONTCHANGE, IntPtr.Zero, IntPtr.Zero);
フォント リソースを削除するには
RemoveFontResource(@"C:\Temp\Font2\GXSTRA03.PFM|C:\Temp\Font2\GXSTRA03.PFB");
long msg = SendMessage(HWND_BROADCAST, WM_FONTCHANGE, IntPtr.Zero, IntPtr.Zero);
誰かが外部 WinApi 呼び出しを行うことに慣れていない場合、ここに私が使用したインポートおよびインポート DLL コードがあります
using System.Runtime.InteropServices;
private static uint WM_FONTCHANGE = 0x1D;
Import("gdi32.dll")]
static extern int AddFontResource(string lpFilename);
[DllImport("gdi32.dll")]
static extern bool RemoveFontResource(string lpFileName);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern int SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
このフォントは、単語やメモ帳などに表示されるようになりました..