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.