On 25.02.2017 19:01, Fabian Maurer wrote:
PostMessageW(GetDlgItem(hwndDlg, ID_TEXTMAIN), WM_SETFONT, (WPARAM)font_main, TRUE);PostMessageW(GetDlgItem(hwndDlg, ID_TEXTCONTENT), WM_SETFONT, (WPARAM)font_default, TRUE);
Why Post*? Dialog handling in user32 has an ability to do this for you.
case WM_CTLCOLORSTATIC:if((HWND)lParam == GetDlgItem(hwndDlg, ID_TEXTMAIN)){HDC hdc = (HDC) wParam;SetTextColor(hdc, RGB(50,50,220));SetBkColor(hdc, GetSysColor(COLOR_3DFACE));return (INT_PTR)GetSysColorBrush(COLOR_3DFACE);}break;
Where does this come from?
- font_default = CreateFontW (16, 0, 0, 0, FW_DONTCARE, FALSE, FALSE, FALSE,
DEFAULT_CHARSET, 0, 0, CLEARTYPE_QUALITY, FF_DONTCARE, font_name);- font_main = CreateFontW (19, 0, 0, 0, FW_DONTCARE, FALSE, FALSE, FALSE,
DEFAULT_CHARSET, 0, 0, CLEARTYPE_QUALITY, FF_DONTCARE, font_name);
Why Tahoma is hardcoded? If you're using dialog code this should be handled automatically using template data.
- if(!IS_INTRESOURCE(pTaskConfig->pszMainInstruction) && !STR_EMPTY(pTaskConfig->pszMainInstruction))
- {
RECT rect;SelectObject(dc_dummy, font_main);rect = text_get_rect(dc_dummy, pTaskConfig->pszMainInstruction, dialog_width);controls_add(controls, ID_TEXTMAIN, class_static, pTaskConfig->pszMainInstruction,WS_CHILD | WS_VISIBLE, 5, dialog_height + 5, rect.right, rect.bottom);dialog_height += rect.bottom + 10;SelectObject(dc_dummy, font_default);- }
- if(!IS_INTRESOURCE(pTaskConfig->pszContent) && !STR_EMPTY(pTaskConfig->pszContent))
- {
RECT rect = text_get_rect(dc_dummy, pTaskConfig->pszContent, dialog_width);controls_add(controls, ID_TEXTCONTENT, class_static, pTaskConfig->pszContent,WS_CHILD | WS_VISIBLE, 5, dialog_height + 5, rect.right, rect.bottom);dialog_height += rect.bottom + 10;- }
- controls_add(controls, IDOK, class_button, text_ok,
WS_CHILD | WS_VISIBLE | BS_DEFPUSHBUTTON, dialog_width - 40 - 10, dialog_height + 5, 40, 10);- dialog_height += 10 + 10;
There's a lot of magic offsets here that should be grouped together and probably have some defined names too.