Memproses Pesan Joystick
[Fitur yang terkait dengan halaman ini, Joysticks, adalah fitur warisan. Ini telah digantikan oleh Windows.Gaming.Input Namespace. Windows.Gaming.Input Namespace telah dioptimalkan untuk Windows 10 dan Windows 11. Microsoft sangat menyarankan agar kode baru menggunakan Namespace Windows.Gaming.Input alih-alih Joysticks, jika memungkinkan. Microsoft menyarankan agar kode yang ada yang menggunakan API warisan ditulis ulang untuk menggunakan API baru jika memungkinkan.]
Contoh berikut menggambarkan bagaimana aplikasi dapat merespons gerakan joystick dan perubahan dalam status tombol. Ketika joystick berubah posisi, aplikasi memindahkan kursor dan, jika salah satu tombol ditekan, menggambar lubang peluru di desktop. Ketika tombol joystick ditekan, aplikasi menggambar lubang di desktop dan memutar suara terus menerus sampai tombol dilepaskan. Pesan yang harus ditonton MM_JOY1MOVE, MM_JOY1BUTTONDOWN, dan MM_JOY1BUTTONUP.
case MM_JOY1MOVE : // changed position
if((UINT) wParam & (JOY_BUTTON1 | JOY_BUTTON2))
DrawFire(hWnd);
DrawSight(lParam); // calculates new cursor position
break;
case MM_JOY1BUTTONDOWN : // button is down
if((UINT) wParam & JOY_BUTTON1)
{
PlaySound(lpButton1, SND_LOOP | SND_ASYNC | SND_MEMORY);
DrawFire(hWnd);
}
else if((UINT) wParam & JOY_BUTTON2)
{
PlaySound(lpButton2, SND_ASYNC | SND_MEMORY | SND_LOOP);
DrawFire(hWnd);
}
break;
case MM_JOY1BUTTONUP : // button is up
sndPlaySound(NULL, 0); // stops the sound
break;