|
分類:[.NET 全般]
インストールされていないフォントをAddFontResourceでリソースに追加した場合、
VSのコンポーネントでそのフォントを使おうとしても使えません。
(new Font()してもサンセリフになってしまい正しいFontオブジェクトが作成されない)
フォントダイアログを使うとダイアログ中に表示はされるのですが、選択しても
それは使えないとフォントダイアログがエラーを吐きます。
確認するとリソースにはきちんと追加されており
他のアプリ、例えばワードパッドでは追加したフォントは正常に利用できます。
これは.NETの仕様もしくはバグなのでしょうか?
また、回避方法はありませんでしょうか?
もしくはコードに問題があるのでしょうか?
どうかご教授願います。
[DllImport("gdi32.dll")]
private static extern int AddFontResource(string lpszFilename);
[DllImport("user32.dll")]
private static extern int SendMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);
private const int HWND_BROADCAST = 0xffff;
private const int WM_FONTCHANGE = 0x001D;
void LoadFont()
{
AddFontResource(@"c:\IWAMINBO.TTF");
SendMessage((System.IntPtr)HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
textBox1.Font = new Font("IWA太明朝Ou",12);
}
|