pesan WM_COMMAND
Dikirim saat pengguna memilih item perintah dari menu, saat kontrol mengirim pesan pemberitahuan ke jendela induknya, atau saat penekanan tombol akselerator diterjemahkan.
#define WM_COMMAND 0x0111
-
wParam
-
Untuk deskripsi parameter ini, lihat Komentar.
-
lParam
-
Untuk deskripsi parameter ini, lihat Komentar.
Jika aplikasi memproses pesan ini, aplikasi harus mengembalikan nol.
BOOL AboutDlg (
HWND hDlg,
UINT message,
WPARAM wParam,
LPARAM lParam)
{
BOOL bRet = FALSE;
switch (message)
{
case WM_INITDIALOG:
bRet = TRUE;
break;
case WM_COMMAND:
if (wParam == IDOK ||
wParam == IDCANCEL)
{
EndDialog(hDlg, TRUE);
bRet = TRUE;
}
break;
}
return bRet;
}
Contoh yang diambil dari sampel klasik Windows di GitHub.
Penggunaan parameter wParam dan lParam dirangkum di sini.
Sumber Pesan | wParam (kata tinggi) | wParam (kata rendah) | lParam |
---|---|---|---|
Menu | 0 | Pengidentifikasi menu (IDM_*) | 0 |
Accelerator | 1 | Pengidentifikasi akselerator (IDM_*) | 0 |
Menguasai | Kode pemberitahuan yang ditentukan kontrol | Pengidentifikasi kontrol | Menangani ke jendela kontrol |
Jika aplikasi mengaktifkan pemisah menu, sistem mengirim pesan WM_COMMAND dengan kata rendah parameter wParam yang diatur ke nol saat pengguna memilih pemisah.
Jika menu ditentukan dengan nilai MENUINFO.dwStyle MNS_NOTIFYBYPOS, WM_MENUCOMMAND dikirim alih-alih WM_COMMAND.
Penekanan tombol akselerator yang memilih item dari menu jendela diterjemahkan ke dalam pesan WM_SYSCOMMAND.
Jika terjadi penekanan tombol akselerator yang sesuai dengan item menu saat jendela pemilik menu diminimalkan, tidak ada pesan WM_COMMAND yang dikirim. Namun, jika terjadi penekanan tombol akselerator yang tidak cocok dengan item apa pun di menu jendela atau di menu jendela, pesan WM_COMMAND dikirim, bahkan jika jendela diminimalkan.
Persyaratan | Value |
---|---|
Klien minimum yang didukung |
Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung |
Windows 2000 Server [hanya aplikasi desktop] |
Header |
|
-
Referensi
-
Konseptual