Обработка сообщений джойстика
В следующем примере показано, как приложение может реагировать на движения джойстика и изменения в состояниях кнопки. Когда джойстик меняет положение, приложение перемещает курсор и, если нажата любая из кнопок, рисует на рабочем столе маркер. При нажатии кнопки джойстика приложение рисует отверстие на рабочем столе и непрерывно воспроизводит звук до тех пор, пока кнопка не будет освобождена. Сообщения для watch: MM_JOY1MOVE, MM_JOY1BUTTONDOWN и 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;