Fungsi SendMessageA (winuser.h)
Mengirim pesan yang ditentukan ke jendela atau jendela. Fungsi SendMessage memanggil prosedur jendela untuk jendela yang ditentukan dan tidak kembali hingga prosedur jendela memproses pesan.
Untuk segera mengirim pesan dan kembali, gunakan fungsi SendMessageCallback atau SendNotifyMessage. Untuk memposting pesan ke antrean pesan utas dan segera kembali, gunakan fungsi
Sintaksis
LRESULT SendMessageA(
[in] HWND hWnd,
[in] UINT Msg,
[in] WPARAM wParam,
[in] LPARAM lParam
);
Parameter
[in] hWnd
Jenis: HWND
Handel ke jendela yang prosedur jendelanya akan menerima pesan. Jika parameter ini HWND_BROADCAST ((HWND)0xffff), pesan dikirim ke semua jendela tingkat atas dalam sistem, termasuk jendela yang tidak berhubung yang dinonaktifkan atau tidak terlihat, jendela tumpang tindih, dan jendela pop-up; tetapi pesan tidak dikirim ke jendela anak.
Pengiriman pesan tunduk pada UIPI. Utas proses hanya dapat mengirim pesan ke antrean pesan utas dalam proses tingkat integritas yang lebih rendah atau sama dengan.
[in] Msg
Jenis: UINT
Pesan yang akan dikirim.
Untuk daftar pesan yang disediakan sistem, lihat pesan System-Defined.
[in] wParam
Jenis: WPARAM
Informasi khusus pesan tambahan.
[in] lParam
Jenis: LPARAM
Informasi khusus pesan tambahan.
Mengembalikan nilai
Jenis:
Nilai pengembalian menentukan hasil pemrosesan pesan; itu tergantung pada pesan yang dikirim.
Komentar
Ketika pesan diblokir oleh UIPI, kesalahan terakhir, diambil dengan GetLastError, diatur ke 5 (akses ditolak).
Aplikasi yang perlu berkomunikasi menggunakan
Sistem hanya melakukan marshalling untuk pesan sistem (yang dalam rentang 0 hingga (WM_USER-1)). Untuk mengirim pesan lain (>= WM_USER) ke proses lain, Anda harus melakukan marshalling kustom.
Jika jendela yang ditentukan dibuat oleh utas panggilan, prosedur jendela segera dipanggil sebagai subroutine. Jika jendela yang ditentukan dibuat oleh utas yang berbeda, sistem beralih ke utas tersebut dan memanggil prosedur jendela yang sesuai. Pesan yang dikirim di antara utas hanya diproses saat utas penerima menjalankan kode pengambilan pesan. Utas pengiriman diblokir hingga utas penerima memproses pesan. Namun, utas pengiriman akan memproses pesan masuk yang tidak diantrekan sambil menunggu pesannya diproses. Untuk mencegah hal ini, gunakan
Aplikasi aksesibilitas dapat menggunakan SendMessage untuk mengirim pesan WM_APPCOMMAND ke shell untuk meluncurkan aplikasi. Fungsionalitas ini tidak dijamin berfungsi untuk jenis aplikasi lain.
Contoh
Misalnya, lihat Menampilkan Input Keyboard.
Nota
Header winuser.h mendefinisikan SendMessage sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta preprosedur UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.
Persyaratan
Syarat | Nilai |
---|---|
klien minimum yang didukung | Windows 2000 Professional [hanya aplikasi desktop] |
server minimum yang didukung |
Windows 2000 Server [hanya aplikasi desktop] |
Platform Target |
Windows |
Header |
winuser.h (termasuk Windows.h) |
Pustaka |
User32.lib |
DLL |
User32.dll |
set API |
ext-ms-win-ntuser-message-l1-1-0 (diperkenalkan di Windows 8) |
Lihat juga
Konseptual
InSendMessage
Pesan
PostMessage
Referensi