Мы будем использовать описанную функцию для получения информации от мыши. Запрашивать информацию мы будем по таймеру, и выводить ее на форму.
Visual Basic Помещаем на форму элемент таймер и инициализируем начальные установки:
Описываем структуру с данными:
Пишем реакцию на событие таймера:
При запуске Вы увидите, что в окне отражается смещение мышки от текущей позиции.
Создаем событие таймера, запускаем таймер при запуске диалогового окна.
Пишем функцию реакции на таймер:
Запускаем и наблюдаем смешения мышки от текущей позиции.
Visual C++
Visual Basic
Private Sub Form_Load()
.....
dmmouse.Acquire
Timer1.Interval = 1000
Timer1.Enabled = True
End Sub
Dim stateMouse As DIMOUSESTATE
Dim dmmouse As DirectInputDevice
.......
Private Sub Timer1_Timer()
dmmouse.GetDeviceStateMouse stateMouse
Form1.Label1.Caption = Str(stateMouse.x)
End Sub
Visual C++
BOOL CDImputDlg::OnInitDialog()
{
CDialog::OnInitDialog();
......
// TODO: Add extra initialization here
SetTimer(ID_TIMER_1,1000,NULL);
return TRUE; // return TRUE unless you set the focus to a control
}
void CDImputDlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
HRESULT hr;
DIMOUSESTATE dims;
hr = g_pMouse->GetDeviceState( sizeof(DIMOUSESTATE), &dims );
m_Edit=dims.lX;
UpdateData(FALSE);
CDialog::OnTimer(nIDEvent);
}