Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
38
Добавлен:
16.02.2016
Размер:
544.77 Кб
Скачать

Методы обновления и перерисовки окна

CDC* BeginPaint (LPPAINTSTRUCT ipPaint);

Метод подготавливает CWnd для рисования (определяет контекст устройства) и заполняет структуру PAINTSTRUCT. void EndPaint (LPPAINTSTRUCT IpPaint);

Метод вызывается каждый раз после завершения рисования в указанной обновляемой области. void Print (CDC* pDC, DWORD dwFlags) const;

Метод выполняет вывод окна в заданном контексте устройства.

Параметры:

pDC - указатель на контекст устройства.

dwFlags - набор флажков, определяющих режим рисования. Параметр является комбинацией из одного или нескольких следующих значений: PRF_CHECKVISIBLE - отрисовка окна только в том случае, если оно является видимым;

pRF_CHILDREN - отрисовка всех видимых дочерних окон;

PRF_CLIENT - отрисовка клиентской области окна;

pRF_ERASEBKGND - удаление фона перед отрисовкой; PRF_NONCLIENT - отрисовка системной области окна; PRF_OWNED - отрисовка всех окон, принадлежащих данному окну для которых данное окно является собственником). Метод CWnd::DefWindowProc обрабатывает сообщение, инициируемое данным методом, в зависимости от указанных флажков. Например, если установлен флажок PRF_ERASEBKGND, то для окна будет инициировано сообщение WM_ERASEBKGND, а если установлен флажок PRF_PRINTCHILDREN, то каждое видимое дочернее окно получит сообщение WM_PRINT.

void PrintClient (CDC* pDC, DWORD dwFlags) const;

Метод выводит любое окно в указанном контексте устройства. BOOL LockWindowUpdate ();

Метод запрещает рисование в данном окне. При установленном режиме блокировки рисования данное окно не может быть перемещено. Одновременно для рисования может быть заблокировано только одно окно. При успешном завершении метод возвращает ненулевое значение.

Если в приложении для окна установлен режим блокировки вывода в окно, то при вызове функций GetDC, GetDCEx и BeginPaint возвращается контекст устройства с пустой видимой областью (visible region).

void CWnd::UnlockWindowUpdate();

Метод снимет блокировку вывода в окно. CDC* GetDC ();

Метод возвращает контекст устройства клиентской области окна CWnd или NULL. В зависимости от класса метод может возвращать общий контекст устройства или контекст класса и индивидуальный контекст. В первом случае метод устанавливает для контекста атрибуты, используемые по умолчанию. А в других случаях метод восстанавливает ранее назначенные атрибуты.

Контекст устройства используется во всех методах построения изображения. Более подробно о контексте устройства см. в гл. 8. CDC* GetDCEx (CRgn* prgnClip, DWORD flags);

Метод возвращает контекст устройства указанного окна или NULL.

Параметры:

PrgnClip - прямоугольная область, комбинируемая с видимой частью клиентской области окна. flags - флажок, принимающий одно из следующих значений:

DCX_CACHE;

DCX_CLIPCHILDREN - (исключение видимых областей всех дочерних окон ниже окна CWnd);

DCX_CLIPSIBLINGS - (исключение видимых областей всех одноуровневых окон выше окна CWnd);

DCX_EXCLUDERGN - (исключение области, указанной параметром prgnClip, из видимой области, возвращаемой контекстом устройства);

DCX_INTERSECTRGN - (пересечение области, указанной параметром prgnClip, с видимой частью возвращаемого контекста устройства);

DCX_LOCKWINDOWUPDATE; DCX_PARENTCLIP - (использование видимой области родительского окна и игнорирование тех окон, для которых установлены стили WS_CLIPCHILDREN и WS_PARENTDC);

DCX_WINDOW - (возвращение контекста устройства, соответствующего окну).

BOOL RedrawWindow (LPCRECT ipRectUpdate = NULL, CRgn* prgnUpdate = NULL, VINT flags = RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE);

Метод обновляет указанную область в клиентской области окна. При успешном завершении метод возвращает ненулевое значение.

Параметры:

Соседние файлы в папке VC++Баженова