WM_SETFONT на WM_CREATE
От: andreip  
Дата: 24.01.04 12:26
Оценка:
Добрый день, уважаемые! Возникла проблема. Создаю окно CreateWindow(...), а в WndProc для этого окна ставлю обработчик WM_CREATE, в к-м пытаюсь окну присвоить шрифт...

WNDCLASS wc;
....
wc.lpfnWndProc = (WNDPROC)WndProc;
......
RegisterClass(&wc);
CreateWindow(......);

...WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_CREATE:
HFONT hFont = (HFONT)GetStockObject(DEFAULT_GUI_FONT);
SendMessage(hwnd, WM_SETFONT, (WPARAM)hFont, 0);
//Здесь пытаюсь проверить: что получилось
hFont = (HFONT)SendMessage(hwnd, WM_GETFONT, 0, 0);
//Так вот hFont равен 0, т.е. ни фига
break;
}
}


Вопрос: Почему? Что не так?

Да, кстати, если пользоваться PostMessage, то фонт в результате применяется, но мне очень важно не получать обратно управления, пока шрифт не будет установлен. Да и где в МСДН-е написано, что SendMessage делать нельзя? Я рылся, но не нашел, может с этим поможете?

Спасибо!!!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.