WinAPI tło formy

0

Nie wiem jak zmienić tło formy za pomocą WinAPI. Znalazłem że trzeba obsłużyć komunikat WM_ERASEBKGND ale nie za bardzo wiem jak namalować tło :/

Tak tworze okno:

handle := CreateWindowEx(WS_EX_TOOLWINDOW, 'clasa', S_ABOUT_WND_TITLE,
        WS_CAPTION or WS_SYSMENU, CW_USEDEFAULT, CW_USEDEFAULT, 300, 200,
        hParent, 0, hInstance, nil);

'clasa':

with Clasa do
  begin
    lpfnWndProc := @WndProc;
    hInstance := hInstance;
    lpszClassName := 'clasa';
    hIcon := LoadIcon(hInstance, 'AppIcon');
    hbrBackground := COLOR_WINDOW; // zmiana tego niestety nie daje zadnych pozadanych efektow :/ albo okno jest biale, albo czarne, albo jest tworzy sie jakby przezroczyste
  end;

I jeszcze jedno. Daje ikonke: 'hIcon := LoadIcon(hInstance, 'AppIcon');' i na pasku zadan jest ikonka ktora sobie zrobilem a na pasku tytulu jest taka domyslna. Jak mozna to zmienic?

Proszę o pomoc

0

No dobra, ale w tym, co podałeś, nie ma kodu odpowiedzialnego za obsługę komunikatów, a w szczególności WM_ERASEBKGND.

0
case uMsg of
    WM_ERASEBKGND:
    begin
        // i tu nie wiem co zrobic z: HDC(wParam),
        // bo tyle wiem ze trzeba z tym cos zrobic
    end;
end;

komunikat włapuje tylko co dalej... Próbowałem SetBkColor() - ale nie udalo sie.

0

ciekawe, gdzie to może być, mhm??

</b>BĘDĘ SPRAWDZAŁ NAJPIERW NA GOOGLE!!!

0

Jak to co robisz z wParam? Masz kontekst urządzenia, więc nic, tylko malować :D A na koniec zwrócić wartość niezerową.

0
brush := CreateSolidBrush(COLOR_BTNFACE);
OldBrush := SelectObject(aDC, brush);
FillRect(aDC, rect, brush);
SelectObject(aDC, OldBrush);

no i maluje tlo ale na czarno. Dlaczego?
A co z moiom drugim pytaniem?


problem rozwiazany

brush := CreateSolidBrush(GetSystemColor(COLOR_BTNFACE));
FillRect(aDC, rect, brush);

1 użytkowników online, w tym zalogowanych: 0, gości: 1