我通過CreateWindowEx創建一個簡單的組框控件有問題。其字幕的字體大小/樣式只是看起來不正確。Groupbox字體問題與WinAPI
我創建了一個簡單的Windows對話框(含組框,按鈕......)與Visual Studio - 資源管理器。當我用DialogBox(...)加載該對話框時,一切看起來很正常,但是當我通過CreateWindowEx(...)在同一個對話框上創建另一個組框控件時,新控件的標題具有不同的font-size/-style。
使用Microsoft Spy ++,我可以看到其他羣組框的dwExStyle和dwStyle值,但即使在CreateWindowEx中使用相同的值,我仍然會看到不同的外觀。
下面是我用它來創建新組框代碼:
HWND hGroup1 = GetDlgItem(_hWnd, IDC_GROUPBOX1);
HWND hGroup2 = CreateWindowEx(
WS_EX_LEFT | WS_EX_LTRREADING | WS_EX_RIGHTSCROLLBAR | WS_EX_NOPARENTNOTIFY,
L"Button",
L"Hallo",
WS_CHILDWINDOW | WS_VISIBLE | BS_GROUPBOX,
20, 20, 250, 250,
hGroup1,
nullptr,
_hInstance,
nullptr);
下面是對話的截屏:
http://imageshack.us/photo/my-images/856/groupboxfontissue.png/
請讓我知道我在哪裏去了錯了,我能做些什麼來解決它。
[編輯-1]
在問候喬納森·波特與超人,你建議我新的組框的字體句柄設置爲相同的其他控件。
HFONT hFont1 = (HFONT)SendMessage(hGroup1, WM_GETFONT, 0, 0);
HFONT hFont2 = (HFONT)SendMessage(hGroup2, WM_GETFONT, 0, 0);
HFONT hFont3 = (HFONT)SendMessage(_hWnd, WM_GETFONT, 0, 0);
SendMessage(hGroup2, WM_SETFONT, (WPARAM)hFont1, TRUE);
hFont2 = (HFONT)SendMessage(hGroup2, WM_GETFONT, 0, 0);
這段代碼的最後,我可以看到,所有的控制和對話窗口有相同的字體句柄但只將其用在資源管理器中創建的控件具有正確的字體(這是系統字體)。
還有什麼我可以做嗎?
[EDIT-2]
我不敢相信它......它現在可以工作了!非常感謝你的幫助!
我不得不設置CreateWindowEx(...)的對話框手柄hWndParent值,然後使用WM_GETFONT和WM_SETFONT複製合適的字體。
祝你週末愉快。您手動創建(通過CreateWindowEx)
你很可能需要一個'IDC_GROUPBOX2'或其他東西來代替你的第一個'nullptr',因爲它是一個孩子。 – chris