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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? input.cpp

?? 很好的vc++菜單界面
?? CPP
字號:
// 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;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
奇米色一区二区三区四区| 日韩情涩欧美日韩视频| 欧美一区二区网站| 国产欧美日韩精品在线| 亚洲第一电影网| 成年人国产精品| 精品不卡在线视频| 午夜精品在线看| 色94色欧美sute亚洲线路二| 2021中文字幕一区亚洲| 婷婷综合另类小说色区| www.av亚洲| 国产欧美一区二区三区沐欲| 日本午夜一本久久久综合| 91片黄在线观看| 国产精品―色哟哟| 国产一区日韩二区欧美三区| 欧美一级黄色大片| 欧美a级理论片| 69久久夜色精品国产69蝌蚪网| 一区在线观看视频| 成人性生交大片免费| 久久亚洲二区三区| 久久精品理论片| 日韩午夜在线观看| 日本成人在线看| 日韩一二三区视频| 日韩成人精品视频| 91精品国产手机| 丝袜美腿亚洲综合| 在线成人午夜影院| 日韩av电影一区| 欧美一区二区三区系列电影| 日韩二区在线观看| 日韩一区二区三区四区| 蜜桃传媒麻豆第一区在线观看| 欧美日本一区二区| 奇米色777欧美一区二区| 欧美一区二区三区男人的天堂| 免费精品99久久国产综合精品| 欧美一区二区三区爱爱| 美女网站在线免费欧美精品| 日韩精品一区二区三区视频| 国产精品香蕉一区二区三区| 国产日产亚洲精品系列| av在线播放不卡| 一区二区三区加勒比av| 欧美日韩一区二区电影| 日本aⅴ免费视频一区二区三区| 日韩欧美国产1| 国产一区二区免费在线| 亚洲欧洲日韩综合一区二区| 在线观看日韩国产| 天天色天天爱天天射综合| www激情久久| 91尤物视频在线观看| 伊人色综合久久天天人手人婷| 欧美三级午夜理伦三级中视频| 美女www一区二区| 中文字幕二三区不卡| 欧美性三三影院| 久久99精品一区二区三区| 中文字幕欧美日韩一区| 日本精品免费观看高清观看| 日本免费在线视频不卡一不卡二| 26uuu国产电影一区二区| 91视频www| 激情小说亚洲一区| 亚洲影院免费观看| 久久综合九色综合欧美98| 色综合天天综合在线视频| 视频在线观看91| 中文字幕乱码亚洲精品一区| 欧美精品久久久久久久多人混战| 国产一区二区三区四区五区入口| 亚洲码国产岛国毛片在线| 久久综合五月天婷婷伊人| 色综合久久六月婷婷中文字幕| 青青青爽久久午夜综合久久午夜| 国产精品欧美一级免费| 3atv一区二区三区| 色综合网站在线| 国产精品白丝jk白祙喷水网站| 亚洲香蕉伊在人在线观| 国产精品入口麻豆原神| 日韩一区二区三区观看| 色先锋aa成人| 成人免费va视频| 精彩视频一区二区三区| 亚洲电影一级黄| 亚洲欧美在线视频| 精品国产99国产精品| 欧美日韩一区二区三区视频| 92精品国产成人观看免费| 久草热8精品视频在线观看| 亚洲一区二区三区中文字幕 | 成人免费在线视频观看| 欧美精品一区二区三区视频| 欧美日韩精品一二三区| 91麻豆成人久久精品二区三区| 国产精品一区二区果冻传媒| 日本一不卡视频| 日韩电影在线一区| 日韩在线a电影| 亚洲国产成人tv| 一区二区三区精品视频| 亚洲人成在线播放网站岛国| 国产精品日产欧美久久久久| 国产欧美日韩不卡| 国产亚洲精品7777| 欧美精品一区二区不卡| 欧美一区二区三区影视| 色综合久久中文综合久久牛| 99久久久久免费精品国产| 99久久精品免费看国产免费软件| 成人免费的视频| 91农村精品一区二区在线| 99国产精品久| 欧美最猛黑人xxxxx猛交| 不卡在线观看av| 一本一道波多野结衣一区二区| 成人av动漫在线| av激情亚洲男人天堂| 91同城在线观看| 欧美性感一类影片在线播放| 99精品久久免费看蜜臀剧情介绍| 国产成人午夜精品影院观看视频 | 在线观看视频91| 欧美日韩在线播| 日韩视频在线永久播放| 日韩一区二区三区电影| 精品国精品自拍自在线| 久久久不卡网国产精品一区| 国产精品视频一二| 一区二区三区四区av| 五月天精品一区二区三区| 日本一区中文字幕| 国产91丝袜在线18| 色婷婷av一区| 日韩一区二区三区电影在线观看| 2024国产精品| 亚洲黄色免费电影| 麻豆传媒一区二区三区| 国产91在线看| 欧美日韩精品一二三区| 久久久精品影视| 伊人性伊人情综合网| 美国十次综合导航| 成人国产精品免费观看动漫 | 中文在线资源观看网站视频免费不卡| 中文字幕一区在线观看视频| 洋洋av久久久久久久一区| 免费看日韩精品| 99r国产精品| 欧美电视剧在线看免费| 国产精品久久久久久亚洲毛片 | 亚洲成a人片综合在线| 奇米影视一区二区三区| 成a人片亚洲日本久久| 91精品婷婷国产综合久久性色 | 久久综合色综合88| 亚洲老妇xxxxxx| 精品写真视频在线观看| 91久久奴性调教| 日本一区二区电影| 蜜臀av性久久久久蜜臀aⅴ四虎| voyeur盗摄精品| 精品电影一区二区| 午夜欧美在线一二页| 成人av在线影院| 久久综合狠狠综合久久综合88| 亚洲国产美国国产综合一区二区| 国产福利一区二区三区视频在线| 欧美日韩亚洲综合| 亚洲男人的天堂av| 成人小视频免费在线观看| 欧美成人video| 欧美aaa在线| 91.com视频| 午夜伦欧美伦电影理论片| 91激情在线视频| 亚洲欧美日韩国产一区二区三区 | 欧美激情一区在线| 蜜桃av一区二区在线观看| 欧美日韩国产经典色站一区二区三区 | 欧美体内she精视频| 国产精品亲子伦对白| 国产一区二区福利| 日韩欧美成人激情| 日韩黄色小视频| 欧美精品日日鲁夜夜添| 偷拍一区二区三区四区| 欧美日韩国产欧美日美国产精品| 一区二区三区精品视频在线| 91久久精品国产91性色tv| 成人免费在线视频观看| 一本大道久久a久久综合婷婷 | 日本va欧美va欧美va精品| 在线不卡欧美精品一区二区三区| 亚洲国产乱码最新视频|