はじめまして。Chikaと申します。よろしくお願いします。
使用PCはWin2000、MicrosoftVisualC++6.0 を使用しています。
C++ SDKでボタンの作成をしたあと、ボタンに表示させたOKのフォントの
変更をしたいのですが、可能でしょうか?
// ボタンの生成
btn_hWnd = CreateWindowEx( WS_EX_TOPMOST,
TEXT(BUTTON), TEXT(OK),
WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
0, 0, 100, 100,
obj_hWnd, NULL, mes_hInst, NULL);
よろしくお願いします。
WM_SETFONT を使います。
度々すみません・・
子ウィンドウの場合でも大丈夫でしょうか?
試してみてダメだったのですか?
どんな風になりましたか?
以下のようにしましたが、フォントは変わりませんでした・・
ボタンを作成した直後はダメでしょうか・・?
---------------------------------------------------------------
#define DLGWINDOW_FONT TEXT(HG創英角ポップ体)
#define WM_SETFONT 0x0030
// ボタンの生成
btn_hWnd = CreateWindowEx( WS_EX_TOPMOST,
TEXT(BUTTON), TEXT(OK),
WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
0, 0, 100, 100,
obj_hWnd, NULL, mes_hInst, NULL);
// フォントの作成
memset(&lf, NULL, sizeof(lf));
lf.lfHeight = DLGWINDOW_FONTSIZE;
lf.lfWeight = DLGWINDOW_FONTWEIGHT;
lf.lfCharSet = 2;
lf.lfOutPrecision = OUT_OUTLINE_PRECIS;
lf.lfClipPrecision = CLIP_STROKE_PRECIS;
lf.lfPitchAndFamily = DEFAULT_PITCH | FF_SWISS;
strcpy(lf.lfFaceName, DLGWINDOW_FONT);
hFont_b = CreateFontIndirect(&lf);
// フォントの設定
SendMessage(btn_hWnd, WM_SETFONT, (WPARAM) hFont_b,
MAKELPARAM(true, 0));
DeleteFont(hFont_b);
設定した直後に削除してるからだと思います。
DeleteFont しちゃうと、せっかく作ったフォントが消えちゃいます。
DeleteFont は、もうボタンを使わないなど、フォントを使わなくなったときにやりまし
ょう。
#というか DeleteFont なんてものがあったなんて知りませんでしたよ。
#関数じゃなくてマクロみたいですが。
解決しました。
みなさんありがとうございました!!