📄 d3dxinput.cpp
字号:
// D3dxInput.cpp: implementation of the CD3dxInput class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "D3dxInput.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
_CD3dxInput::_CD3dxInput()
{
m_pKeyboard = NULL;
m_pMouse = NULL;
}
_CD3dxInput::~_CD3dxInput()
{
CleanUpDirectInputDevice();
}
//获得键盘设备
LPDIRECTINPUTDEVICE8 _CD3dxInput::GetKeyboardDevice()
{
return m_pKeyboard;
}
//获得鼠标设备
LPDIRECTINPUTDEVICE8 _CD3dxInput::GetMouseDevice()
{
return m_pMouse;
}
void _CD3dxInput::CleanUpDirectInputDevice()
{
if(m_pKeyboard)
{
m_pKeyboard->Unacquire();
}
if(m_pMouse)
{
m_pMouse->Unacquire();
}
SAFE_RELEASE(m_pMouse);
SAFE_RELEASE(m_pKeyboard);
}
//初始化键盘设备
HRESULT _CD3dxInput::InitKeyboard()
{
HRESULT hr;
//Create the keyboard device object
if(FAILED(hr = m_pDI->CreateDevice(GUID_SysKeyboard, &m_pKeyboard, NULL)))
{
CleanUpDirectInputDevice();
return hr;
}
//Set the data format for the keyboard
if(FAILED(hr = m_pKeyboard->SetDataFormat(&c_dfDIKeyboard)))
{
CleanUpDirectInputDevice();
return hr;
}
//Set the cooperative level for the keyboard
if(FAILED(hr = m_pKeyboard->SetCooperativeLevel(m_hWnd, DISCL_FOREGROUND | DISCL_NONEXCLUSIVE)))
{
CleanUpDirectInputDevice();
return hr;
}
//Acquire the keyboard
if(m_pKeyboard)
{
m_pKeyboard->Acquire();
}
return S_OK;
}
//初始化鼠标设备
HRESULT _CD3dxInput::InitMouse()
{
HRESULT hr;
//Create the mouse device object
if(FAILED(hr = m_pDI->CreateDevice(GUID_SysMouse, &m_pMouse, NULL)))
{
CleanUpDirectInputDevice();
return hr;
}
//Set the data format for the mouse
if(FAILED(hr = m_pMouse->SetDataFormat(&c_dfDIMouse)))
{
CleanUpDirectInputDevice();
return hr;
}
//Set the cooperative level for the mouse
if(FAILED(hr = m_pMouse->SetCooperativeLevel(m_hWnd, DISCL_FOREGROUND | DISCL_NONEXCLUSIVE)))
{
CleanUpDirectInputDevice();
return hr;
}
//Acquire the mouse
if(m_pMouse)
{
m_pMouse->Acquire();
}
return S_OK;
}
HRESULT _CD3dxInput::Create(LPDIRECTINPUT8 pDI, HWND hWnd)
{
m_pDI = pDI;
m_hWnd = hWnd;
HRESULT hr;
if(FAILED(hr = InitKeyboard()))
return hr;
if(FAILED(hr = InitMouse()))
return hr;
return S_OK;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -