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

[winAPI] Tworzenie okna potomnego

Ostatnio zmodyfikowano 2014-02-12 09:29
Autor Wiadomość
ja.
Temat założony przez niniejszego użytkownika
[winAPI] Tworzenie okna potomnego
» 2014-02-11 12:41:44
Dzień dobry,

Mam pytanie:
Jak w winAPI stworzyć okno potomne?

Pozdrawiam.
P-104424
alixir
» 2014-02-11 12:58:40
Hmm. Przy założeniu, że hWnd to uchwyt twojego głównego okna:

C/C++
HWND hWnd2 = CreateWindow( szWindowClass, TEXT( "Child Window" ), WS_CHILD | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX,
100, 100, 300, 100, hWnd, NULL, hInstance, NULL );
P-104426
ja.
Temat założony przez niniejszego użytkownika
» 2014-02-11 13:14:49
`szWindowClass' undeclared (first use this function)
P-104428
alixir
» 2014-02-11 13:22:18
Myślałem, że to będzie oczywiste. Popatrz się na swoją funkcję tworzącą główne okno. To jest dokładnie taki sam parameter.
P-104429
ja.
Temat założony przez niniejszego użytkownika
» 2014-02-11 14:15:56
Aaaaa, jeśli chodzi o
char szWindowClass[] = "KlasaOkna";
, to już to dodałem i wszystko ładnie się kompiluje, ale okno nie pojawia się po naciśnięciu buttona...
P-104435
alixir
» 2014-02-11 14:30:46
Pytałeś się jak sie tworzy okno potomne. Obsługe zdarzeń musisz sobie dopisać.
P-104436
ja.
Temat założony przez niniejszego użytkownika
» 2014-02-11 14:33:12
No tak to do głównego okna dopisałem obsługę zdarzeń:
C/C++
LRESULT CALLBACK WindowProcedure( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam )
{
    switch( message ) /* handle the messages */
    {
    case WM_DESTROY:
        PostQuitMessage( 0 ); /* send a WM_QUIT to the message queue */
        break;
       
    case WM_COMMAND:
        {
            if(( HWND ) lParam == g_hPrzycisk )
            {
                char szWindowClass[] = "KlasaOkna";
               
                HWND hWnd2 = CreateWindow( szWindowClass, TEXT( "Child Window" ), WS_CHILD | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX,
                100, 100, 300, 100, hwnd, NULL, hInstance, NULL );
            }
        }
    }
}
P-104437
alixir
» 2014-02-11 14:37:52
ShowWindow( hWnd2, nCmdShow );
P-104438
« 1 » 2
  Strona 1 z 2 Następna strona