Обновить текстовое поле после изменения шрифта (Win32) - PullRequest
0 голосов
/ 24 апреля 2010

После того, как я использую setcontrolfont, текст текстового поля не обновляется. Единственный способ, которым я это исправил, - это удаление, затем чтение всего текста, но это кажется хакерским. Как я могу сделать это правильно? Спасибо

* это функция, которую я сделал:

void SetControlFont(HWND hand, int size, char* name)
{
    HGDIOBJ hfDefault;
    hfDefault = (HGDIOBJ)CreateFontA(size, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0,name);
    SendMessage(hand, WM_SETFONT, (WPARAM)hfDefault, MAKELPARAM(FALSE, 0));
}

1 Ответ

3 голосов
/ 24 апреля 2010
SendMessage(hand, WM_SETFONT, (WPARAM)hfDefault, MAKELPARAM(FALSE, 0))

MAKELPARAM(FALSE, 0) сообщает окну, что оно не должно перерисовываться. Вы пытались использовать MAKELPARAM(TRUE, 0) вместо этого?


Если вы не хотите изменять функцию SetControlFont, вы можете указать текстовому полю перерисоваться после вызова SetControlFont, вызвав RedrawWindow.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...