На главную

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 | Скачать Вниз

Drawing a Custom Window Background



You can draw your own window background rather than having Windows draw it for you. Most applications specify a brush handle or system color value for the class background brush when registering the window class; Windows uses the brush or color to draw the background. If you set the class background brush to NULL, however, Windows sends a WM_ERASEBKGND message to your window procedure whenever the window background must be drawn, letting you draw a custom background.

In the following example, the window procedure draws a large checkerboard pattern that fits neatly in the window. The procedure fills the client area with a white brush and then draws thirteen 20-by-20 rectangles using a gray brush. The display DC to use when drawing the background is specified in the wParam parameter for the message.


HBRUSH hbrWhite, hbrGray;

.
.
.

case WM_CREATE:
hbrWhite = GetStockObject(WHITE_BRUSH);
hbrGray = GetStockObject(GRAY_BRUSH);
return 0L;

case WM_ERASEBKGND:
hdc = (HDC) wParam;
GetClientRect(hwnd, &rc);
SetMapMode(hdc, MM_ANISOTROPIC);
SetWindowExtEx(hdc, 100, 100, NULL);
SetViewportExtEx(hdc, rc.right, rc.bottom, NULL);
FillRect(hdc, &rc, hbrWhite);

for (i = 0; i < 13; i++) {
x = (i * 40) % 100;

y = ((i * 40) / 100) * 20;
SetRect(&rc, x, y, x + 20, y + 20);
FillRect(hdc, &rc, hbrGray);
}
return 1L;


If the application draws its own minimized window, Windows also sends the WM_ERASEBKGND message to the window procedure to draw the background for the minimized window. You can use the same technique used by WM_PAINT to determine whether the window is minimized ѕ that is, call the IsIconic function and check for the return value TRUE.


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

Чертеж Заказного Фона Окна



Вы можете сделать вашим собственным фоном окна а не иметь Окно делает это для Вас. Большинство приложений определяют ручку щетки или системной цветной величины для щетки фона класса при регистре класса окна; Окно использует щетку или окрашивает, чтобы делать фоном. Если Вы установили бы щетку фона класса на НЕДЕЙСТВИТЕЛЬНЫЙ, тем не менее, Окно посылает сообщение WM_ERASEBKGND в вашу процедуру окна всякий раз, когда фон окна должен быть сделан, позволяя Вы делаете заказным фоном.

В следующем примере, процедура окна делает большим образцом шахматной доски, который устанавливается аккуратно в окне. Процедура заполняет клиенту область белой щеткой затем делает тринадцатью 20-использование by-20 прямоугольников серая щетка. Показ DC, чтобы использоваться при чертеже фона определен в параметре wParam для сообщения.


HBRUSH hbrWhite, hbrGray;

.
.
.

случай WM_CREATE:
hbrWhite = GetStockObject(WHITE_BRUSH);
hbrGray = GetStockObject(GRAY_BRUSH);
возвращайте 0L;

случай WM_ERASEBKGND: hdc = (HDC) wParam;
GetClientRect(hwnd, &rc);
SetMapMode(hdc, MM_ANISOTROPIC);
SetWindowExtEx(hdc, 100, 100, НЕДЕЙСТВИТЕЛЬНОЕ);
SetViewportExtEx(hdc, rc.right, rc.bottom, НЕДЕЙСТВИТЕЛЬНЫЙ);
FillRect(hdc, &rc, hbrWhite);

для (i = 0; я < 13; я++) { x = (я * 40) % 100;

y = ((я * 40) / 100) * 20;
SetRect(&rc, x, y, x + 20, y + 20);
FillRect(hdc, &rc, hbrGray);
}
возвращайте 1L;


Если приложение делает своим собственным минимизированным окном, Окно также посылает сообщение WM_ERASEBKGND в процедуру окна, чтобы делать фоном для минимизированного окна. Вы можете использовать ту же технику использованную WM_PAINT, чтобы определять минимизировано окно U то есть, вызовите функцию IsIconic и проверены на наличие обратной ИСТИНЫ величины.


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