Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Opracował: McAffey
Biblioteki C/C++

ShowWindow

[funkcja] Ustawia określony stan widoczności okna.

Składnia

C/C++
#include <windows.h>

BOOL ShowWindow(
HWND hWnd,
int nCmdShow
);

Argumenty

ArgumentOpis
HWND hWndUchwyt do okna
int nCmdShowKontroluje sposób w jaki okno ma być widoczne. Argument ten jest ignorowany gdy aplikacja pierwszy raz wywołuje ShowWindow, jeśli program uruchamiający aplikację przekazał strukturę STARTUPINFO. W przeciwnym razie, gdy funkcja ShowWindow jest pierwszy raz wywołana, wartość ta powinna być równa wartości uzyskanej przez funkcję WinMain w jej argumencie nCmdShow. W kolejnych wywołaniach ten argument może być jedną z następujących wartości :
  • SW_FORCEMINIMIZE – Minimalizuje okno, nawet jeśli wątek który jest właścicielem okna nie odpowiada. Ta flaga powinna być stosowana tylko przy zminimalizowanych oknach z innych wątków.
  • SW_HIDE – Ukrywa okno i aktywuje inne okno.
  • SW_MAXIMIZE – Maksymalizuje określone okno.
  • SW_MINIMIZE – Minimalizuje określone okno i aktywuje następne okno na najwyższym poziomie w porządku Z.
  • SW_RESTORE – Aktywuje i wyświetla okno. Jeśli okno jest zminimalizowane lub zmaksymalizowane, system przywraca je do jego oryginalnej wielkości i pozycji. Aplikacja powinna określać tę flagę podczas przywracania zminimalizowanego okna.
  • SW_SHOW – Aktywuje okno i wyświetla je w jego bieżącym rozmiarze i pozycji.
  • SW_SHOWDEFAULT – Ustawia stan wyświetlenia na podstawie wartości SW_ określonej w strukturze STARTUPINFO przekazywanej do funkcji CreateProcess przez program który uruchomił aplikację.
  • SW_SHOWMAXIMIZED – Aktywuje okno i wyświetla je zmaksymalizowane.
  • SW_SHOWMINIMIZED -  Aktywuje okno i wyświetla je zminimalizowane.
  • SW_SHOWMINNOACTIVE – Wyświetla okno w postaci zminimalizowanej. Ta wartość jest podobna do SW_SHOWMINIMIZED z tą różnicą, że okno nie jest aktywowane.
  • SW_SHOWNA -  Wyświetla okno w jego bieżącej pozycji i rozmiarze. Ta wartość jest podobna do SW_SHOW z tą różnicą że okno nie jest aktywowane.
  • SW_SHOWNOACTIVATE -  Wyświetla okno w jego ostatniej pozycji i rozmiarze. Ta wartość jest podobna do SW_SHOWNORMAL z tą różnicą, że okno nie jest aktywowane.
  • SW_SHOWNORMAL – Aktywuje i wyświetla okno. Jeśli okno jest zminimalizowane lub zmaksymalizowane system przywraca je do jego oryginalnego rozmiaru i pozycji. Aplikacja powinna określać tę flagę gdy okno jest wyświetlane pierwszy raz.

Zwracana wartość

Zwraca wartość typu BOOL.
Jeśli okno było wcześniej widoczne zwraca wartość różną od zera.
Jeśli okno było wcześniej ukryte, zwraca wartość zero.

Opis szczegółowy

Funkcja ustawia określony stan widoczności wskazanego okna.

Aby wykonać niektóre efekty specjalne podczas wyświetlania/ukrywania okna, użyj funkcji AnimateWindow.

Gdy aplikacja po raz pierwszy wywołuje ShowWindow, należy użyć argumentu nCmdShow funkcji WinMain jako argument nCmdShow funkcji ShowWindow. Kolejne wywołanie ShowWindow musi używać jedną z wartości podaną w liście, zamiast argumentu nCmdShow funkcji WinMain.

Jak zauważono podczas dyskusji na temat argumentu nCmdShow, wartość nCmdShow jest ignorowana podczas pierwszego wywołania funkcji ShowWindow jeśli program który uruchomił aplikację określa informację startową w strukturze. W tym przypadku, ShowWindow używa informacji określonych w strukturze do wyświetlenia okna STARTUPINFO. W czasie kolejnych wywołań aplikacja musi wywołać ShowWindow z argumentem nCmdShow ustawionym na SW_SHOWDEFAULT do korzystania z informacji początkowych dostarczonych przez program który uruchomił aplikację. Takie zachowanie jest przeznaczone dla następujących sytuacji :
  • Aplikacje które utworzyły swoje główne okno wywołując CreateWindow z flagą WS_VISIBLE.
  • Aplikacje które utworzyły swoje główne okno wywołując CreateWindow z wyczyszczoną flagą WS_VISIBLE, a później wywołały ShowWindow z flagą SW_SHOW aby było ono widoczne.

Wymagania

Minimalny obsługiwany klientWindows 2000 Professional
Minimalny obsługiwany serwerWindows 2000 Server
NagłówekWinuser.h (załączone do Windows.h)
BibliotekaUser32.lib
DLLUser32.dll

Przykład

C/C++
#include <windows.h>

LRESULT CALLBACK WindowProcedure( HWND, UINT, WPARAM, LPARAM );

char szClassName[] = "WindowsApp";

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstnace, LPSTR lpCmdLine, int nCmdShow )
{
    HWND hwnd;
    MSG messages;
    WNDCLASSEX wincl;
   
    wincl.hInstance = hInstance;
    wincl.lpszClassName = szClassName;
    wincl.lpfnWndProc = WindowProcedure;
    wincl.style = CS_DBLCLKS;
    wincl.cbSize = sizeof( WNDCLASSEX );
   
    wincl.hIcon = LoadIcon( NULL, IDI_APPLICATION );
    wincl.hIconSm = LoadIcon( NULL, IDI_APPLICATION );
    wincl.hCursor = LoadCursor( NULL, IDC_ARROW );
    wincl.lpszMenuName = NULL;
    wincl.cbClsExtra = 0;
    wincl.cbWndExtra = 0;
    wincl.hbrBackground =( HBRUSH ) COLOR_BACKGROUND;
   
    if( !RegisterClassEx( & wincl ) )
         return 0;
   
    hwnd = CreateWindowEx( 0, szClassName, "Windows App", WS_OVERLAPPEDWINDOW,
    CW_USEDEFAULT, CW_USEDEFAULT, 544, 375, HWND_DESKTOP, NULL, hInstance, NULL );
   
    ShowWindow( hwnd, SW_SHOWMAXIMIZED ); /*Przykład zastosowania funkcji ShowWindow z argumentami hwnd i SW_SHOWMAXIMIZED*/
   
    while( GetMessage( & messages, NULL, 0, 0 ) )
    {
        TranslateMessage( & messages );
        DispatchMessage( & messages );
    }
   
    return messages.wParam;
}


LRESULT CALLBACK WindowProcedure( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam )
{
    switch( message )
    {
    case WM_DESTROY:
        PostQuitMessage( 0 );
        break;
        default:
        return DefWindowProc( hwnd, message, wParam, lParam );
    }
   
    return 0;
}

Linki zewnętrzne