亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? input.cpp

?? 很好的vc++菜單界面
?? CPP
字號(hào):
// Input.cpp: implementation of the CDirectInput class.
//
//////////////////////////////////////////////////////////////////////

#include "Input.h"

#define SAFE_RELEASE(x)		if(x) { x->Release(); x = NULL; }

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CDirectInput::CDirectInput()
{
	m_pDI = NULL;
	m_pdevKeyboard = NULL;
	m_pdevJoystick = NULL;
}

CDirectInput::~CDirectInput()
{
	Destroy();
}


BOOL CDirectInput::Create( HINSTANCE hInst, HWND hWnd )
{
	HRESULT hr;

	// Create DirectInput object
	hr = DirectInputCreate( hInst, DIRECTINPUT_VERSION, &m_pDI, NULL );
	if( FAILED(hr) )
		return FALSE;

	// Initialize keyboard...
	hr = m_pDI->CreateDevice( GUID_SysKeyboard, &m_pdevKeyboard, NULL );
	if( FAILED(hr) )
	{
		Destroy();
		return FALSE;
	}

	m_pdevKeyboard->SetDataFormat( &c_dfDIKeyboard );

	m_pdevKeyboard->SetCooperativeLevel( hWnd, 
			DISCL_FOREGROUND | DISCL_NONEXCLUSIVE );

	// acquire keyboard
	m_pdevKeyboard->Acquire();


	
	// enum joystick devices
	m_pDI->EnumDevices( DIDEVTYPE_JOYSTICK, EnumJoystickCB,
			(LPVOID)this, DIEDFL_ATTACHEDONLY );

	if( m_pdevJoystick )
	{
		m_pdevJoystick->SetDataFormat( &c_dfDIJoystick );
		
		m_pdevJoystick->SetCooperativeLevel( hWnd,
			DISCL_FOREGROUND | DISCL_EXCLUSIVE );
		
		// Set the range of the joystick axes tp [-1000,+1000]
		DIPROPRANGE diprg; 
		diprg.diph.dwSize       = sizeof(DIPROPRANGE); 
		diprg.diph.dwHeaderSize = sizeof(DIPROPHEADER); 
		diprg.diph.dwHow        = DIPH_BYOFFSET; 
		diprg.lMin              = -10; 
		diprg.lMax              = +10; 
		
		diprg.diph.dwObj = DIJOFS_X;    // Set the x-axis range
		m_pdevJoystick->SetProperty( DIPROP_RANGE, &diprg.diph );
		
		diprg.diph.dwObj = DIJOFS_Y;    // Set the y-axis range
		m_pdevJoystick->SetProperty( DIPROP_RANGE, &diprg.diph );
		
		// Set the dead zone for the joystick axes (because many joysticks
		// aren't perfectly calibrated to be zero when centered).
		DIPROPDWORD dipdw; 
		ZeroMemory( &dipdw, sizeof(dipdw) );
		dipdw.diph.dwSize       = sizeof(DIPROPDWORD); 
		dipdw.diph.dwHeaderSize = sizeof(DIPROPHEADER); 
		dipdw.diph.dwHow        = DIPH_DEVICE; 
		dipdw.dwData            = 9000;
		
		dipdw.diph.dwObj = DIJOFS_X;    // Set the x-axis deadzone
		m_pdevJoystick->SetProperty( DIPROP_DEADZONE, &dipdw.diph );
		
		dipdw.diph.dwObj = DIJOFS_Y;    // Set the y-axis deadzone
		m_pdevJoystick->SetProperty( DIPROP_DEADZONE, &dipdw.diph );
		
		// acquire joystick
		m_pdevJoystick->Acquire();
	}

	return TRUE;
}


void CDirectInput::Destroy()
{
	if( m_pdevKeyboard )
		m_pdevKeyboard->Unacquire();
	if( m_pdevJoystick )
		m_pdevJoystick->Unacquire();
	SAFE_RELEASE( m_pdevKeyboard );
	SAFE_RELEASE( m_pdevJoystick );
	SAFE_RELEASE( m_pDI );
}


BOOL CDirectInput::Acquire()
{
	if( !m_pdevKeyboard || 
		FAILED(m_pdevKeyboard->Acquire()) )
		return FALSE;

	if( m_pdevJoystick )
		m_pdevJoystick->Acquire();
	
	return TRUE;
}


BOOL CDirectInput::GetKey( WORD& input1, WORD& input2 )
{
#define KEYDOWN(key)	(buffer[key] & 0x80)
	
	// Read keyboard data...
	HRESULT hr;
	char buffer[256];

	// We have not read any data yet
	input1 = input2 = 0;

	hr = m_pdevKeyboard->GetDeviceState( sizeof(buffer), &buffer );
	if( FAILED(hr) )
	{
		if( hr == DIERR_INPUTLOST )
			hr = Acquire();
		
		return FALSE;
	}

	if( KEYDOWN( DIK_UP ) )
		input1 |= KEY_UP;
	else if( KEYDOWN( DIK_DOWN ) )
		input1 |= KEY_DOWN;
	else if( KEYDOWN( DIK_LEFT ) )
		input1 |= KEY_LEFT;
	else if( KEYDOWN( DIK_RIGHT ) )
		input1 |= KEY_RIGHT;
	if( KEYDOWN( DIK_NUMPAD0 ) )
		input1 |= KEY_FIRE;

	if( KEYDOWN( DIK_E ) )
		input2 |= KEY_UP;
	else if( KEYDOWN( DIK_D ) )
		input2 |= KEY_DOWN;
	else if( KEYDOWN( DIK_S ) )
		input2 |= KEY_LEFT;
	else if( KEYDOWN( DIK_F ) )
		input2 |= KEY_RIGHT;
	if( KEYDOWN( DIK_SPACE ) )
		input2 |= KEY_FIRE;


	if( m_pdevJoystick )
	{
		DIJOYSTATE	js;
		
		// poll the joystick to read the current state
		m_pdevJoystick->Poll();
		
		// get data from the joystick
		hr = m_pdevJoystick->GetDeviceState( sizeof(js), &js );
		if( FAILED(hr) )
		{
			// did the read fail because we lost input for some reason? 
			// if so, then attempt to reacquire. If the second acquire 
			// fails, then the error from GetDeviceData will be 
			// DIERR_NOTACQUIRED, so we won't get stuck an infinite loop.
			if( hr = DIERR_INPUTLOST )
				hr = Acquire();
			
			return FALSE;
		}

		if( js.lX < 0 )
			input1 |= KEY_LEFT;
		else if( js.lX > 0 )
			input1 |= KEY_RIGHT;
		else if( js.lY < 0 )
			input1 |= KEY_UP;
		else if( js.lY > 0 )
			input1 |= KEY_DOWN;
		if( js.rgbButtons[0] & 0x80 )
			input1 |= KEY_FIRE;
	}

	return TRUE;
}



BOOL CALLBACK EnumJoystickCB( LPCDIDEVICEINSTANCE pdinst, 
							   LPVOID pvRef )
{
	CDirectInput* p = (CDirectInput*)pvRef;
	LPDIRECTINPUTDEVICE pdev;

	if( FAILED(p->m_pDI->CreateDevice( pdinst->guidInstance, &pdev, NULL)) )
		return DIENUM_CONTINUE;

	pdev->QueryInterface( IID_IDirectInputDevice2, (LPVOID *)&p->m_pdevJoystick );
	return DIENUM_STOP;
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区欧美| 2020国产成人综合网| 制服丝袜av成人在线看| 精品国产91乱码一区二区三区| 久久午夜老司机| 中文字幕一区在线观看视频| 亚洲制服欧美中文字幕中文字幕| 日日夜夜精品免费视频| 国产福利一区二区三区在线视频| 99久久伊人精品| 欧美日韩精品三区| 欧美精品一区二区精品网| 国产精品久久久久久久久搜平片| 夜夜爽夜夜爽精品视频| 久久99精品国产麻豆婷婷| 成人福利视频在线| 欧美日韩精品欧美日韩精品| 国产午夜一区二区三区| 一区二区三区在线观看网站| 久久成人久久爱| 色偷偷一区二区三区| 欧美电影免费提供在线观看| 亚洲少妇30p| 黄一区二区三区| 欧美视频中文字幕| 久久精品欧美日韩精品| 亚洲成a人v欧美综合天堂| 成人午夜视频在线| 91麻豆精品国产| 亚洲人成精品久久久久| 久久99久久精品| 欧美在线免费播放| 国产精品三级在线观看| 日本最新不卡在线| 色噜噜狠狠一区二区三区果冻| 日韩你懂的电影在线观看| 洋洋成人永久网站入口| 岛国一区二区在线观看| 日韩一区二区三区免费看| 亚洲免费观看高清完整版在线| 国产一级精品在线| 欧美日韩激情一区二区| 日韩美女啊v在线免费观看| 国产剧情av麻豆香蕉精品| 7777精品伊人久久久大香线蕉超级流畅| 亚洲国产精品黑人久久久| 日韩av一级电影| 欧美天堂亚洲电影院在线播放| 国产精品热久久久久夜色精品三区| 日本不卡不码高清免费观看| 精品视频在线看| 亚洲卡通欧美制服中文| 粉嫩av一区二区三区| 精品久久久久99| 首页亚洲欧美制服丝腿| 日本福利一区二区| 国产精品国产精品国产专区不蜜 | 九九热在线视频观看这里只有精品| 91国产视频在线观看| 国产精品久久久久国产精品日日| 国产精品正在播放| 欧美成人免费网站| 日本亚洲视频在线| 欧美日韩小视频| 亚洲一区二区欧美日韩| 在线观看av一区| 一区二区三区色| 91久久线看在观草草青青| 成人欧美一区二区三区1314| 高清不卡一二三区| 国产视频一区在线观看| 国产麻豆成人传媒免费观看| 久久久噜噜噜久久中文字幕色伊伊 | 日本人妖一区二区| 制服丝袜一区二区三区| 日韩国产成人精品| 欧美美女视频在线观看| 亚洲国产成人av网| 欧美日韩精品三区| 日韩精品色哟哟| 日韩亚洲欧美中文三级| 美脚の诱脚舐め脚责91| 欧美一级二级三级乱码| 国模少妇一区二区三区| 2024国产精品| 成人免费视频播放| 国产精品福利影院| 色婷婷精品久久二区二区蜜臀av| 一区二区三区成人在线视频| 在线亚洲精品福利网址导航| 亚洲午夜在线视频| 欧美一区二区三区播放老司机| 免费在线观看精品| 久久婷婷成人综合色| 国产成人综合亚洲91猫咪| 国产欧美一区二区精品婷婷| 成人网男人的天堂| 亚洲伦理在线精品| 精品视频在线免费看| 麻豆国产91在线播放| 久久久www成人免费毛片麻豆| 粉嫩av一区二区三区| 国产精品福利一区二区三区| 在线观看一区日韩| 青青草国产成人av片免费| 久久综合给合久久狠狠狠97色69| 成人午夜免费电影| 一区二区在线免费观看| 3d成人动漫网站| 国产999精品久久| 1024精品合集| 欧美一区二区三区在线视频| 国产一区二区成人久久免费影院 | 国产成+人+日韩+欧美+亚洲| 国产精品综合在线视频| 成人免费视频播放| 亚洲一区影音先锋| 日韩精品一区在线| 91丨九色丨黑人外教| 亚洲成人午夜影院| ww久久中文字幕| 91视频xxxx| 久久99久久99精品免视看婷婷| 18欧美亚洲精品| 欧美r级在线观看| 色综合天天性综合| 久色婷婷小香蕉久久| 成人欧美一区二区三区白人| 欧美一区二区三区视频在线 | 欧美刺激午夜性久久久久久久| 成人禁用看黄a在线| 三级欧美在线一区| 欧美国产精品久久| 日韩一区二区在线观看视频 | 国产精品福利影院| 欧美一区二区三区在线电影| av一二三不卡影片| 免费欧美在线视频| 亚洲美女一区二区三区| 久久综合色婷婷| 欧美日韩在线播放三区| 国产电影一区二区三区| 视频在线观看一区| 亚洲欧洲日韩女同| 精品国产污网站| 欧美日韩综合色| aaa欧美色吧激情视频| 狂野欧美性猛交blacked| 亚洲欧美日韩系列| 久久综合久久鬼色中文字| 欧美三电影在线| 色综合久久中文综合久久牛| 国产一区二区三区在线观看免费视频 | 一区二区日韩电影| 久久久久一区二区三区四区| 91精品在线免费| 日本高清免费不卡视频| 东方aⅴ免费观看久久av| 毛片一区二区三区| 亚洲国产成人高清精品| 亚洲婷婷国产精品电影人久久| 久久久久国产成人精品亚洲午夜| 日韩午夜电影在线观看| 欧美三级电影在线观看| 色综合天天综合| 91在线国产福利| 国产电影精品久久禁18| 国产综合色在线视频区| 免费日韩伦理电影| 日韩精品电影在线| 亚洲一卡二卡三卡四卡无卡久久| 中文字幕在线观看一区| 欧美极品xxx| 国产欧美日韩综合| 亚洲精品一区二区三区香蕉 | 麻豆成人av在线| 婷婷六月综合网| 亚洲成人一区在线| 亚洲一区二区在线观看视频 | 99久久久精品| 国产成人免费在线| 国产大陆精品国产| 国产高清一区日本| 成人涩涩免费视频| 成人一区二区三区视频| 国产+成+人+亚洲欧洲自线| 国产不卡在线视频| 国产风韵犹存在线视精品| 国产成人午夜精品影院观看视频 | 日韩一区二区三区高清免费看看| 欧美美女视频在线观看| 欧美精品高清视频| 在线综合+亚洲+欧美中文字幕| 欧美日韩中字一区| 欧美一区二区三区视频在线观看| 欧美福利一区二区| 欧美一区二区视频在线观看2020 | 男男视频亚洲欧美| 久久99日本精品| 国产自产高清不卡|