|
| БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
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; }
|
|
|
|
| |