Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

WM_PAINT - откуда оно берётся? (Winapi и С++)

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> WM_PAINT - откуда оно берётся? (Winapi и С++)
Имя
Сообщение << Старые топики   Новые топики >>
WM_PAINT - откуда оно берётся? (Winapi и С++) - 2007-05-24 17:59:26.906666   
t3rmin@1

Сообщений: 197
Оценки: 0
Присоединился: 2006-09-22 23:03:30.883333
Пока писал вот такой код:

if (msg == WM_DESTROY)&nbsp;{ &nbsp; PostQuitMessage(0); } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else if (msg == WM_PAINT)&nbsp;&nbsp;{ &nbsp;&nbsp; hdc = BeginPaint(hWnd, &amp;ps); &nbsp; TextOut(hdc, 0, 0, "He11o, Wo(R)1D!", 15);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; EndPaint(hWnd, &amp;ps); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp; else if (msg == WM_LBUTTONUP) { &nbsp;MessageBox(0, "Left Mouse Click", "Warning", MB_TASKMODAL); } else { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return DefWindowProc(hWnd, msg, wParam, lParam);&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
решил задать вопрос - откуда в программе берётся сообщение WM_PAINT? с WM_DESTROY и WM_LBUTTONUP всё понятно - их посылает пользователь и тогда уже  Windows реагирует на эти сообщения. А вот WM_PAINT кто посылает ОС, чтоб она среагировала?
Post #: 1
RE: WM_PAINT - откуда оно берётся? (Winapi и С++) - 2007-05-24 18:39:45.593333   
saimon 2metra

Сообщений: 4281
Оценки: 0
Присоединился: 2007-01-26 10:56:51.426666
Всеми вышеназванными и еще кучей других системными сообщениями система обменивается всегда с программой. На WM-PAINT реакция такого характера: был ли поверх окна другой объект. Любой - курсор, другое окно, скринсэйвер…
Post #: 2
RE: WM_PAINT - откуда оно берётся? (Winapi и С++) - 2007-05-24 18:46:56.673333   
dOver

Сообщений: 140
Оценки: 0
Присоединился: 2007-03-31 04:41:56.070000
WM_PAINT посылает система при сворачивании окна в трей, при перекрытии окна твоей проги другим окном и т.д. Можно вызвать это сообщение и програмно, вызвав функцию InvalidateRect(), например обновить экран.
Post #: 3
RE: WM_PAINT - откуда оно берётся? (Winapi и С++) - 2007-05-24 19:31:25.096666   
t3rmin@1

Сообщений: 197
Оценки: 0
Присоединился: 2006-09-22 23:03:30.883333
А если я только программу открыл, и ничего не сворачивал, курсор не двигал и вообще ничего не делал - просто открыл.
Чего-то не очень понятно…
Или ОС сразу посылает программе какой-то набор сообщений, стандартный для каждой программы? А может это сообщение(WM_PAINT) посылается функцией ShowWindow или UpdateWindow?
 
В общем, особо мне не прояснилось…
Post #: 4
RE: WM_PAINT - откуда оно берётся? (Winapi и С++) - 2007-05-25 02:25:27.190000   
alexbozhko

Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
Ну посылает, естесственно.
The WM_PAINT message is sent when the UpdateWindow or RedrawWindow member function is called.
Это в MSDN написано.
Что может быть проще? :)


Post #: 5
RE: WM_PAINT - откуда оно берётся? (Winapi и С++) - 2007-05-25 07:25:20.853333   
t3rmin@1

Сообщений: 197
Оценки: 0
Присоединился: 2006-09-22 23:03:30.883333
Да, проще некуда) Спасиб)
Post #: 6
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> WM_PAINT - откуда оно берётся? (Winapi и С++)







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.