Pesan dan Antrean Pesan

Bagian ini menjelaskan pesan dan antrean pesan dan cara menggunakannya di aplikasi Anda.

Di Bagian Ini

Nama Deskripsi
Tentang Pesan dan Antrean Pesan Bagian ini membahas pesan Windows dan antrean pesan.
Menggunakan Pesan dan Antrean Pesan Contoh kode berikut menunjukkan cara melakukan tugas berikut yang terkait dengan pesan Windows dan antrean pesan.
Referensi Pesan Berisi referensi API.

Pesan System-Provided

Untuk daftar pesan yang disediakan sistem, lihat Pesan yang Ditentukan Sistem.

Fungsi Pesan

Nama Deskripsi
BroadcastSystemMessage Mengirim pesan ke penerima yang ditentukan. Penerima dapat berupa aplikasi, driver yang dapat diinstal, driver jaringan, driver perangkat tingkat sistem, atau kombinasi apa pun dari komponen sistem ini.
Untuk menerima informasi tambahan jika permintaan ditentukan, gunakan fungsi BroadcastSystemMessageEx .
BroadcastSystemMessageEx Mengirim pesan ke penerima yang ditentukan. Penerima dapat berupa aplikasi, driver yang dapat diinstal, driver jaringan, driver perangkat tingkat sistem, atau kombinasi apa pun dari komponen sistem ini.
Fungsi ini mirip dengan BroadcastSystemMessage kecuali bahwa fungsi ini dapat mengembalikan lebih banyak informasi dari penerima.
DispatchMessage Mengirimkan pesan ke prosedur jendela. Biasanya digunakan untuk mengirimkan pesan yang diambil oleh fungsi GetMessage .
GetInputState Menentukan apakah ada tombol mouse atau pesan keyboard dalam antrean pesan utas panggilan.
GetMessage Mengambil pesan dari antrean pesan utas panggilan. Fungsi mengirimkan pesan terkirim masuk hingga pesan yang diposting tersedia untuk diambil.
Tidak seperti GetMessage, fungsi PeekMessage tidak menunggu pesan diposting sebelum kembali.
GetMessageExtraInfo Mengambil informasi pesan tambahan untuk utas saat ini. Informasi pesan tambahan adalah nilai yang ditentukan aplikasi atau driver yang terkait dengan antrean pesan utas saat ini.
GetMessagePos Mengambil posisi kursor untuk pesan terakhir yang diambil oleh fungsi GetMessage .
Untuk menentukan posisi kursor saat ini, gunakan fungsi GetCursorPos .
GetMessageTime Mengambil waktu pesan untuk pesan terakhir yang diambil oleh fungsi GetMessage . Waktu adalah bilangan bulat panjang yang menentukan waktu yang berlalu, dalam milidetik, sejak sistem dimulai hingga waktu pesan dibuat (yaitu, ditempatkan dalam antrean pesan utas).
GetQueueStatus Menunjukkan jenis pesan yang ditemukan dalam antrean pesan utas panggilan.
InSendMessage Menentukan apakah prosedur jendela saat ini sedang memproses pesan yang dikirim dari utas lain (dalam proses yang sama atau proses yang berbeda) dengan panggilan ke fungsi SendMessage .
Untuk mendapatkan informasi tambahan tentang cara pesan dikirim, gunakan fungsi InSendMessageEx .
InSendMessageEx Menentukan apakah prosedur jendela saat ini sedang memproses pesan yang dikirim dari utas lain (dalam proses yang sama atau proses yang berbeda).
PeekMessage Mengirimkan pesan terkirim yang masuk, memeriksa antrean pesan utas untuk pesan yang diposting, dan mengambil pesan (jika ada).
PostMessage Memposting pesan dalam antrean pesan yang terkait dengan utas yang membuat jendela yang ditentukan dan kembali tanpa menunggu utas memproses pesan.
Untuk memposting pesan dalam antrean pesan yang terkait dengan utas, gunakan fungsi PostThreadMessage .
PostQuitMessage Menunjukkan kepada sistem bahwa utas telah membuat permintaan untuk mengakhiri (berhenti). Biasanya digunakan sebagai respons terhadap pesan WM_DESTROY .
PostThreadMessage Memposting pesan ke antrean pesan dari utas yang ditentukan. Ini kembali tanpa menunggu utas memproses pesan.
RegisterWindowMessage Menentukan pesan jendela baru yang dijamin unik di seluruh sistem. Nilai pesan dapat digunakan saat mengirim atau memposting pesan.
ReplyMessage Membalas pesan yang dikirim melalui fungsi SendMessage tanpa mengembalikan kontrol ke fungsi yang disebut SendMessage.
SendAsyncProc Fungsi panggilan balik yang ditentukan aplikasi yang digunakan dengan fungsi SendMessageCallback . Sistem meneruskan pesan ke fungsi panggilan balik setelah meneruskan pesan ke prosedur jendela tujuan. Jenis SENDASYNCPROC mendefinisikan penunjuk ke fungsi panggilan balik ini. SendAsyncProc adalah tempat penampung untuk nama fungsi yang ditentukan aplikasi.
SendMessage 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 PostMessage atau PostThreadMessage .
SendMessageCallback Mengirim pesan yang ditentukan ke jendela atau jendela. Ini memanggil prosedur jendela untuk jendela yang ditentukan dan segera kembali. Setelah prosedur jendela memproses pesan, sistem memanggil fungsi panggilan balik yang ditentukan, meneruskan hasil pemrosesan pesan dan nilai yang ditentukan aplikasi ke fungsi panggilan balik.
SendMessageTimeout Mengirim pesan yang ditentukan ke salah satu jendela lainnya.
SendNotifyMessage Mengirim pesan yang ditentukan ke jendela atau jendela. Jika jendela dibuat oleh utas panggilan, SendNotifyMessage memanggil prosedur jendela untuk jendela dan tidak kembali sampai prosedur jendela memproses pesan. Jika jendela dibuat oleh utas yang berbeda, SendNotifyMessage meneruskan pesan ke prosedur jendela dan segera kembali; tidak menunggu prosedur jendela selesai memproses pesan.
SetMessageExtraInfo Menyetel informasi pesan tambahan untuk utas saat ini. Informasi pesan tambahan adalah nilai yang ditentukan aplikasi atau driver yang terkait dengan antrean pesan utas saat ini. Aplikasi dapat menggunakan fungsi GetMessageExtraInfo untuk mengambil informasi pesan tambahan utas.
TranslateMessage Menerjemahkan pesan kunci virtual ke dalam pesan karakter. Pesan karakter diposting ke antrean pesan utas panggilan, untuk dibaca lain kali utas memanggil fungsi GetMessage atau PeekMessage .
WaitMessage Menghasilkan kontrol ke utas lain ketika utas tidak memiliki pesan lain dalam antrean pesannya. Fungsi WaitMessage menangguhkan utas dan tidak kembali hingga pesan baru ditempatkan dalam antrean pesan utas.

Konstanta Pesan

Nama Deskripsi
OCM__BASE Digunakan untuk menentukan pesan privat untuk digunakan oleh kelas jendela privat.
WM_APP Digunakan untuk menentukan pesan privat.
WM_USER Digunakan untuk menentukan pesan privat untuk digunakan oleh kelas jendela privat.

Struktur Pesan

Nama Deskripsi
BSMINFO Berisi informasi tentang jendela yang menolak permintaan dari BroadcastSystemMessageEx.
MSG Berisi informasi pesan dari antrean pesan utas.