pawellek1995 Temat założony przez niniejszego użytkownika |
[WinAPI] Zamykanie określonego okienka » 2013-11-30 16:47:06 Witam, Napisałem program, który powinien zamykać określone okienko, lecz gdy nacisnę "x" WM_CLOSE to zamyka mi wszystkie okna. Gdyby ktoś mógł pomóc byłbym wdzięczny. kontrolka[ 0 ] = CreateWindowEx( 0, "BUTTON", "X", WS_CHILD | WS_VISIBLE, 10, 10, 30, 20, okienka[ 0 ], NULL, * hInst, NULL );
^To kontrolka która miała zamykać okno. To obsługa komunikatów: LRESULT CALLBACK WndProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam ) { switch( msg ) { case WM_COMMAND: if(( HWND ) lParam == kontrolka[ 0 ] ) DestroyWindow( okienka[ 0 ] ); break; case WM_CREATE: break; case WM_CLOSE: DestroyWindow( hwnd ); break; case WM_DESTROY: PostQuitMessage( 0 ); break; default: return DefWindowProc( hwnd, msg, wParam, lParam ); } return 0; }
To tworzenie okiena drugiego(głównego nie chcem zamykać tylko drugie). Właśnie próbowałem stworzyć drugą pętle komunikatów ale dalej nie działała. okienka[ 0 ] = CreateWindowEx( WS_EX_CLIENTEDGE, NazwaKlasy, "Opcje", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 400, 200, NULL, NULL, * hInst, NULL );
I mam jeszcze jedno pytanie. Jeśli tworzy się pare okienek to czy trzeba dla każdego tworzyć nową funkcję WNDCLASSEX i obsługę komunikatów ? |
|
pekfos |
» 2013-11-30 16:51:01 Zamykają się wszystkie okna, bo w WM_DESTROY nie sprawdzasz, które jest niszczone i kończysz pracę programu. Jeśli tworzy się pare okienek to czy trzeba dla każdego tworzyć nową funkcję WNDCLASSEX i obsługę komunikatów ? |
Nie. |
|
pawellek1995 Temat założony przez niniejszego użytkownika |
» 2013-11-30 16:52:38 A jak to sprawdzić ? Lparam ani Wparam nie jest wykorzystywany ;/ przy WM_DESTROY |
|
pekfos |
» 2013-11-30 16:53:51 hwnd. |
|
pawellek1995 Temat założony przez niniejszego użytkownika |
» 2013-11-30 17:08:00 Ale PostQuitMessage przyjmuje tylko int :( |
|
pekfos |
.. » 2013-11-30 17:10:06 Wiesz w ogóle, co robi PostQuitMessage()? |
|
pawellek1995 Temat założony przez niniejszego użytkownika |
» 2013-11-30 17:13:45 Dokładnie nie wiem, sam się próbuje uczyć winapi w szkole tego nie uczą. Wiem że przekazuje jakiś parametr do WM_Quit ? Mógłbyś podać jakiś przykład? Chyba łatwiej będzie jak stworze nową WNDCLASSEX dla każdego nowego okienka i obsługę, ale to bedzie masakryczna ilość kodu ;/ |
|
pekfos |
» 2013-11-30 17:19:16 |
|
« 1 » 2 3 4 |