Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Opracował: McAffey
Udoskonalił: Piotr DejaVu Szawdyński
Biblioteki C/C++

IsWindow

[funkcja] Sprawdza czy okno o podanym uchwycie istnieje.

Składnia

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

BOOL WINAPI IsWindow(
HWND hWnd
);

Argumenty

ArgumentOpis
HWND hWndUchwyt okna, które ma zostać sprawdzane.

Zwracana wartość

Zwraca wartość różną od zera, jeżeli okno o podanym uchwycie istnieje. W przeciwnym wypadku funkcja zwraca wartość 0.

Opis szczegółowy

Funkcja sprawdza czy okno o podanym uchwycie okna istnieje.

Funkcja IsWindow nie powinna być używana przez wątek, który nie tworzył okna, ponieważ okno mogło zostać zniszczone zaraz po wywołaniu tej funkcji.

Uchwyty okna z chwilą zniszczenia zasobów na które wskazywały są zwracane do puli ogólnej, a więc może się zdarzyć sytuacja w której uchwyt zacznie wskazywać na inne okno.

Wymagania

Minimalny obsługiwany klientWindows 2000 Professional
Minimalny obsługiwany serwerWindows 2000 Server
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_NORMAL );
   
    if( IsWindow( hwnd ) != 0 ) MessageBox( HWND_DESKTOP, "Okno zostało wykryte.", "Komunikat", MB_OK ); //Przykład użycia funkcji IsWindow
   
    if( IsWindow( hwnd ) == 0 ) MessageBox( HWND_DESKTOP, "Okno nie zostało wykryte.", "Komunikat", MB_OK ); //Przykład użycia funkcji IsWindow
   
    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