Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Hasło nie zostało zweryfikowane
Niniejsze hasło zostało opracowane, jednak nie zostało ono zweryfikowane przez administrację serwisu. Jeżeli znalazłeś błędy merytoryczne w niniejszym dokumencie, prosimy o ich zgłoszenie na forum w dziale Znalezione błędy.
Opracował: xevuel
Biblioteki C/C++

SendMessage

[funkcja] Wysyła podany komunikat do procedury danego okna.

Składnia

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

LRESULT WINAPI SendMessage(
HWND hWnd,
UINT Msg,
WPARAM wParam,
LPARAM lParam
);

Argumenty

Argumenty Opis
hWndUchwyt okna, do którego zostanie wysłany dany komunikat
MsgKomunikat, który zostanie wysłany do procedury obsługi okna
wParamDodatkowe informacje o komunikacie
lParamDodatkowe informacje o komunikacie

Zwracana wartość

Wartość zwracana zależy od danego komunikatu. Przykładowo może ona zawierać kod błędu, jeśli operacja się nie udała, lub np. numer linii.

Kiedy wiadomość jest zablokowana przez błąd UIPI, » WinAPIGetLastError zwróci 5 (odmowa dostępu).

Opis szczegółowy

Funkcja SendMessage to chyba najczęściej używana funkcja WinAPI. Umożliwia ona komunikację z oknem/kontrolką. Daje również możliwość "ręcznej" symulacji różnych zdarzeń. Jej działanie polega na tym, że wysyła komunikat do danego okna i powoduje wywołanie jego zdefiniowanej procedury. Nie zwraca wartości, dopóki nie otrzyma jej od danej procedury. Aby wysłać komunikat i natychmiast odebrać wartość, należy użyć funkcji SendMessageCallback albo SendNotifyMessage. Aby wykonać to samo zadanie posługując się wątkami, użyj PostMessage albo PostThreadMessage. SendMessage jest używana w wielu przypadkach, oto kilka przykładów:
  • Ustawienie czcionki dla danej kontrolki:
    C/C++
    HFONT hFont =( HFONT ) GetStockObject( DEFAULT_GUI_FONT );
    SendMessage( hWnd, WM_SETFONT,( WPARAM ) hFont, 0 );
  • Usunięcie elementu z ListView:
    C/C++
    SendMessage( hWnd, LVM_DELETEITEM,( WPARAM ) 3, 0 );
  • "Ręczne" zakończenie aplikacji:
    C/C++
    SendMessage( hWnd, WM_DESTROY, 0, 0 );
  • Skopiowanie zaznaczonego tekstu z Edit-a:
    C/C++
    SendMessage( hWnd, WM_COPY, 0, 0 );

Dodatkowe informacje

Niniejsze pojęcie jeszcze nie zostało wyczerpująco przez nas opracowane. Więcej informacji na temat niniejszego hasła znajdziesz pod adresem http://msdn.microsoft.com/en-us/library/windows/desktop/ms644950(v=vs.85).aspx.

Wymagania

Minimalny obsługiwany klientWindows 2000 Professional
Minimalny obsługiwany serwerWindows 2000 Server
BibliotekaUser32.lib
DLLUser32.dll
Nazwy UNICODE i ANSISendMessageW (Unicode) i SendMessageA (ANSI)

Linki zewnętrzne