Шаг 13 - Реализуем захват и освобождение

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
}

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 3.06.2002