Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[WinAPI] Tło/obrazy w oknach WS_CHILD

Ostatnio zmodyfikowano 2013-05-21 22:51
Autor Wiadomość
lergon
Temat założony przez niniejszego użytkownika
[WinAPI] Tło/obrazy w oknach WS_CHILD
» 2013-04-13 21:15:48
Witam

Wewnątrz głównego okna tworze kolejne okno tej samej klasy ale z flago WS_CHILD i chciał bym dać temu oknu tło
standardowa metoda opisana w kursie nie działa (Wydaje mi się ,że okno dziecka nie wysyła komunikatu WM_PAINT ale pewien nie jestem bo nie wiem czy metoda którą sprawdzałem jest poprawna)
Starałem się też to wygooglować ale nie znalazłem rozwiązania możliwe że po prostu nie potrafię odpowiednio nazwać tego problemu.

stąd moje pytanie czy wiecie jak to zrobić/Obejść/Nazwać ten problem bardziej profesjonalnie.

przybliżony kodzik który za to odpowiada:
C/C++
HWND User, Okno1;
User = CreateWindowEx( WS_EX_CLIENTEDGE, "WindowClass", "Orlik", WS_VISIBLE | WS_BORDER | WS_SYSMENU, CW_USEDEFAULT, CW_USEDEFAULT, 800, 600, NULL, NULL, nr_procesu, NULL );
Okno1 = CreateWindowEx( WS_EX_CLIENTEDGE, "WindowClass", "Orlik", WS_CHILD | WS_VISIBLE, 0, 0, 120, y, User, NULL, nr_procesu, NULL );

HBITMAP HBOkno =( HBITMAP ) LoadImage( NULL, "Obrazy\\Kontrolki\\k1.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE );

HDC hdc = GetDC( Okno1 ), hdc_pomocniczy = CreateCompatibleDC( Okno1 );
SelectObject( hdc_pomocniczy, HBOkno );
BitBlt( hdc, 531, 10, 110, 50, hdc_pomocniczy, 0, 0, SRCAND );


//case WM_PAINT:
if( hwnd == Okno1 )
{
    { PAINTSTRUCT ps3;
        hdc = BeginPaint( hwnd, & ps3 );
        BitBlt( hdc, 0, 0, 110, 50, hdc_pomocniczy, 0, 0, SRCAND );
        EndPaint( Okno1, & ps3 ); }
P-80526
DejaVu
» 2013-05-21 22:51:49
Poczytaj o subclassingu i superclassingu jeżeli komunikat Ci jakiś nie dochodzi :)

» Kurs WinAPI, C++ » ZaawansowaneSubclassing i superclassing lekcja
P-83568
« 1 »
  Strona 1 z 1