Bagikan melalui


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 System-Defined.

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 fungsiBroadcastSystemMessageEx.
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 denganBroadcastSystemMessage kecuali fungsi ini dapat mengembalikan lebih banyak informasi dari penerima.
DispatchMessage Mengirimkan pesan ke prosedur jendela. Biasanya digunakan untuk mengirim pesan yang diambil oleh fungsiGetMessage.
GetInputState Menentukan apakah ada pesan tombol mouse atau 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 fungsiGetCursorPos.
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 memproses pesan yang dikirim dari utas lain (dalam proses yang sama atau proses yang berbeda) dengan panggilan ke fungsiSendMessage.
Untuk mendapatkan informasi tambahan tentang cara pesan dikirim, gunakan fungsiInSendMessageEx.
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 yang dikirim 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 fungsiPostThreadMessage.
postQuitMessage Menunjukkan kepada sistem bahwa utas telah membuat permintaan untuk mengakhiri (keluar). 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 Balasan ke pesan yang dikirim melalui fungsiSendMessage tanpa mengembalikan kontrol ke fungsi yang disebut SendMessage.
SendAsyncProc Fungsi panggilan balik yang ditentukan aplikasi yang digunakan dengan fungsiSendMessageCallback. Sistem meneruskan pesan ke fungsi panggilan balik setelah meneruskan pesan ke prosedur jendela tujuan. Jenis SENDASYNCPROC menentukan 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 fungsiPostMessage atauPostThreadMessage.
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 Mengatur 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 fungsiGetMessageExtraInfo 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 saat berikutnya utas memanggilGetMessage atau fungsiPeekMessage.
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.