ison Temat założony przez niniejszego użytkownika |
WinApi - zamknięcie okna » 2010-05-09 14:34:15 witam, mógłbym mi ktoś pomóc i powiedzieć dlaczego to okno po zamknięciu zostaje w procesach? (muszę je zabijać przez menedżera zadań) #include<windows.h>
int WINAPI WinMain( HINSTANCE program, HINSTANCE oj, LPSTR lpsCmdLine, int nMode ) { HWND okno; MSG wiadomosc; WNDCLASS klasa; klasa.hInstance = program; klasa.lpszClassName = "ison"; klasa.lpfnWndProc = DefWindowProc; klasa.lpszMenuName = NULL; klasa.style = 0; klasa.hIcon = LoadIcon( program, "IKONA" ); klasa.hCursor = LoadCursor( program, "KURSOR" ); klasa.hbrBackground =( HBRUSH ) GetStockObject( BLACK_BRUSH ); klasa.cbClsExtra = 0; klasa.cbWndExtra = 0; if( !RegisterClass( & klasa ) ) return 0; okno = CreateWindow( "ison", "blebleble", WS_OVERLAPPEDWINDOW, 500, 500, 500, 500, NULL, NULL, program, NULL ); ShowWindow( okno, SW_SHOW ); HBITMAP bitmapa = LoadBitmap( program, "OBRAZEK" ); HDC kontekst = GetDC( okno ); RECT prost = { 30, 100, 200, 300 }; FillRect( kontekst, & prost, CreateSolidBrush( 0x44FFDD ) ); HDC pomoc = CreateCompatibleDC( kontekst ); SelectObject( pomoc, bitmapa ); BitBlt( kontekst, 30, 50, 100, 100, pomoc, 0, 0, SRCCOPY ); TextOut( kontekst, 10, 10, "f", 1 ); DeleteDC( pomoc ); ReleaseDC( okno, kontekst ); DeleteObject( bitmapa ); while( GetMessage( & wiadomosc, NULL, 0, 0 ) ) { DispatchMessage( & wiadomosc ); TranslateMessage( & wiadomosc ); } PostQuitMessage( 0 ); }
|
|
Elaine |
» 2010-05-09 15:15:13 WM_QUIT nigdy nie zostaje wysłane, więc pętla komunikatów się nie kończy. |
|
ison Temat założony przez niniejszego użytkownika |
» 2010-05-09 15:17:37 nie rozumiem, dopiero zaczynam uczyć się winapi i niezbyt ogarniam :) czyli co mam napisać na koniec żeby się zamknęło?
teraz po naciśnięciu krzyżyka okno znika a proces zostaje |
|
Elaine |
» 2010-05-09 15:52:46 Musisz napisać własną procedurę obsługi komuniaktów, która wyśle WM_QUIT w momencie zamknięcia okna. |
|
« 1 » |