Bagikan melalui


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;