Visual Basic При запуске приложения производим захват:
При закрытии освобождение:
При запуске приложения и его активизации производим захват:
При выходе из приложения освобождение:
Visual C++
Visual Basic
Private Sub Form_Load()
Set objDirectX = New DirectX7
Set dri = objDirectX.DirectInputCreate
Set dmmouse = dri.CreateDevice("GUID_SysMouse")
dmmouse.SetCooperativeLevel Form1.hWnd, DISCL_FOREGROUND Or DISCL_NONEXCLUSIVE
dmmouse.SetCommonDataFormat DIFORMAT_MOUSE
Me.Show
dmmouse.Acquire
End Sub
Private Sub Form_Terminate()
dmmouse.Unacquire
End Sub
Visual C++
void CDImputDlg::OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized)
{
CDialog::OnActivate(nState, pWndOther, bMinimized);
HRESULT hr;
hr=g_pMouse->Acquire();
if FAILED(hr)
{
ASSERT(FALSE);
}
// TODO: Add your message handler code here
}
void CDImputDlg::OnDestroy()
{
HRESULT hr;
hr=g_pMouse->Unacquire();
if FAILED(hr)
{
ASSERT(FALSE);
}
CDialog::OnDestroy();
// TODO: Add your message handler code here
}