Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > сообщение WM_PAINT


Автор: vinter 24.7.2006, 17:06
У меня такая проблема: Есть блок диалога на нем есть линейка(SLIDER),есть функция которая выз-ся при изменени линейки..Как мне из этой функции послать сообщение WM_PAINT????Пробовал UpdateWindow(); и SendMessage(WM_PAINT); но че то никак не хотят они меня слушать smile   

Автор: Earnest 24.7.2006, 17:11
Сначала InvalidateRect, потом UpdateWindow 

Автор: Coocky 24.7.2006, 17:25
Цитата(Earnest @  24.7.2006,  17:11 Найти цитируемый пост)
Сначала InvalidateRect, потом UpdateWindow

Простите, мадам (мадам -произнесено интонацией Карлсона smile ), любопытства ради, можно узнать- а почему не Invalidate() просто?
 

Автор: Earnest 24.7.2006, 17:37
А... ну написала так просто... А может, нужно не все перерисовать?  smile  

Автор: Coocky 24.7.2006, 17:42
Дело в том, что я накалывался с UpdateWindow пару раз.
 Иногда оно помогает, когда нужно миновать очередь сообщений и обновится раньше других. Но..
Иногда обновлялся (верне НЕ обновлялся), из-того, что мое окно не посылало сообщение WM_PAINT. Почему-то smile (видимо посчитав, что область обновления пуста smile )  Либо посылало раньше , чем надо (ну например раньше скролинга smile ) Эффекты-жуткие, я вам скажу smile  

Автор: vinter 24.7.2006, 22:09
А почему он SendMessage() не хочет слушать??? 

Автор: Earnest 25.7.2006, 06:53
Вот паразит-то!!! smile 
Потому что мало получить WM_PAINT, нужно еще иметь невалидный регион. А у тебя обработчик WM_PAINT просто ничего не делает. А может и игнорируется, так как обновлять нечего. 

Автор: vinter 26.7.2006, 10:39
Всем спасибо за ответы!!! smile  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)