//функцией CombineRgnO.

h - CreateRectRgn(0.0.10.10); //Для считывания из окна региона обновления создается вспомогательный регион

}
break;
case WM_NCPAINT: Bord-1; return 0;

//Перехватывая это сообщение и минуя вызов DefWindowProcO оператором //return, мы не даем системе восстановить стандартный вид фона и рамки //и испортить наш фон.

case WM_NCM0USEM0VE: //Система обновляет изображения значков «Свернуть». «Восстановить» и пр.

case WM_NCACTIVATE: //Это сообщение приходит при потере и восстановлении фокуса ввода.

Bord - 1: //Поэтому устанавливаем признак необходимости обновления рамки.

return 1;
case WMJRASEBKGND: {
Erase - 1;

Res - GetUpdateRgn(hWnd.h.FALSE); //Читаем регион обновления if (Res-NULLREGION) //Если пришло сообщение WM_ERASEBKGND. значит, обязательно должен быть //непустой регион обновления

{Inva11dateRect(hWnd.NULL.FALSE); //В этом случае требуем обновить все окно, так как конкретная область //обновления неизвестна

Res - GetUpdateRgn(hWnd.h.FALSE): }
OffsetRgn(h.rrX.rrY+rrC

//int Res2 - DefWindowProc(hWnd.message.wParam.lParam); //в нашей ситуации стирать дефектную область не имеет смысла - весь фон //обновляем сами.

ValidateRect(hWnd.NULL); //Удаляем дефектную область окна

SendMessageChWnd.WM_PAINT.0.0); //Обновляем изображение

return 0;
}
case WM_PAINT: {

if(Bord && Erase ) //И рабочая область, и заголовок требуют

Res - CombineRgn(h.hNC.h.RGN_0R); //обновления - объединяем регионы.

HDC hdc - GetWindowDC(hWnd); //Получаем контекст для рисования в окне

i f(Erase)
Res - SelectClipRgn(hdc.h);
else

Res - SelectClipRgn(hdc.hNC): //Обновляем только неклиентскую область ShowRis(hdc.&Fon); //Выводимые объекты отсекаются по ShowRis(hdc.&GI); //занесенному в контекст региону отсечения. ShowRis(hdc.(RIS*)&Tm); ReleaseDC(hWnd.hdc); }

Bord - 0;Erase-0;

Задания для самостоятельного выполнения

return 0;
case WM_LBUTT0ND0WN:
if(TestClick(&Tm.hWnd.message.wParam.lParam))

return 0; //Сообщение поглотила сенсорная область тумблера. MessageBox(hWnd."Щелчок по полю рисунка"."".NULL); break;


⇐ Предыдущая| |Следующая ⇒