На главную

On-line справка по Win32 API

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z | Скачать Вниз

Redrawing the Entire Client Area



You can have your application redraw the entire contents of the client area whenever the window changes size by setting the CS_HREDRAW and CS_VREDRAW styles for the window class. Applications that adjust the size of the drawing based on the size of the window use these styles to ensure that they start with a completely empty client area when drawing.

In the following example, the window procedure draws a five-pointed star that fits neatly in the client area. It uses a common DC and must set the mapping mode as well as window and viewport extents each time the WM_PAINT message is processed.

LRESULT APIENTRY WndProc(hwnd, message, wParam, lParam)
HWND hwnd;
UINT message;
WPARAM wParam;
LPARAM lParam;
{
PAINTSTRUCT ps;
HDC hdc;
RECT rc;
POINT aptStar[6] = {50,2, 2,98, 98,33, 2,33, 98,98, 50,2};

.
.
.

case WM_PAINT:
hdc = BeginPaint(hwnd, &ps);
GetClientRect(hwnd, &rc);
SetMapMode(hdc, MM_ANISOTROPIC);
SetWindowExtEx(hdc, 100, 100, NULL);

SetViewportExtEx(hdc, rc.right, rc.bottom, NULL);
Polyline(hdc, aptStar, 6);
EndPaint(hwnd, &ps);
return 0L;

.
.
.
}


int APIENTRY WinMain(hInstance, hPrevInstance, lpCmdLine, nCmdShow)
HINSTANCE hInstance; /* handle of current instance */
HINSTANCE hPrevInstance; /* handle of previous instance */
LPSTR lpCmdLine; /* address of command line */

int nCmdShow; /* show-window type (open/icon) */
{
WNDCLASS wc;

.
.
.

wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = (WNDPROC) WndProc;

.
.
.

RegisterClass(&wc);

.
.
.

return msg.wParam;
}



Пригласи друзей и счет твоего мобильника всегда будет положительным!
Предыдущая статья
 
Сайт Народ.Ру Интернет
Следующая статья
Пригласи друзей и счет твоего мобильника всегда будет положительным!

Перерисовыванный Целая Область Клиента



Вы можете иметь ваше приложение перерисовывать целое содержание области клиента всякий раз, когда окно изменяет размер устанавливая CS_HREDRAW и стили CS_VREDRAW для класса окна. Приложения, которые регулируют размер чертежа основывался в размере использования окна эти стили, чтобы проверять, что они начинают с полностью пустой области клиента при чертеже.

В следующем примере, процедура окна делает пяти-указавшее звезду, которая устанавливается аккуратно в области клиента. Это использует общий DC и должно установить отображающий способ, а также окно и viewport протяженность всякий раз, когда сообщение WM_PAINT обработано.

LRESULT APIENTRY WndProc(hwnd, СООБЩЕНИЕ, wParam, lParam) HWND hwnd;
СООБЩЕНИЕ UINT;
WPARAM wParam;
LPARAM lParam;
{
ps PAINTSTRUCT;
hdc HDC;
rc RECT;
ТОЧКА aptStar[6] = {50,2, 2,98, 98,33, 2,33, 98,98, 50,2};

.
.
.

случай WM_PAINT: hdc = BeginPaint(hwnd, &ps);
GetClientRect(hwnd, &rc);
SetMapMode(hdc, MM_ANISOTROPIC);
SetWindowExtEx(hdc, 100, 100, НЕДЕЙСТВИТЕЛЬНОЕ);

SetViewportExtEx(hdc, rc.right, rc.bottom, НЕДЕЙСТВИТЕЛЬНЫЙ);
Ломаная линия(hdc, aptStar, 6);
EndPaint(hwnd, &ps);
возвращайте 0L;

.
.
.
}


int APIENTRY WinMain(hInstance, hPrevInstance, lpCmdLine, nCmdShow) hInstance HINSTANCE; /* ручка текущего примера */ hPrevInstance HINSTANCE; /* ручка предшествующего примера */ LPSTR lpCmdLine; /* адрес командной линии */

int nCmdShow; /* показ-окно типа (открывать/икона) */
{
wc WNDCLASS;

.
.
.

wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = (WNDPROC) WndProc;

.
.
.

RegisterClass(&wc);

.
.
.

возвращайте msg.wParam;
}



Вверх Version 1.3, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод OpenGL  Русский перевод Win32 API
 
Используются технологии uCoz