⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 keyboard.h

📁 3D俄罗斯方块源码.rar
💻 H
字号:
#ifndef _KEYBOARD_H
#define _KEYBOARD_H
/********************************************************************
文件名: KEYBOARD.h
Copyright (c)2004  红孩儿工作室
创建人  : 卞安
创建时间: 2004-5-18 12:33:30
版本: 1.0
类名: CKEYBOARD
说明:
	键盘输入类
********************************************************************/
#include "dinput.h"
#include <windows.h>
#include "MYLOG.h"
#include "CControl.h"
//---------------------------------------------------------------

     /** KEYBOARD 类.
       * 键盘类
       */
class CKEYBOARD
{
HRESULT         hr; /*返回结果用的句柄 */
LPDIRECTINPUT8  m_lpDI; /*对应的DINPUT对象 */
LPDIRECTINPUTDEVICE8 m_lpDIDevice ;/*创建的设备对象 */
CMYLOG m_Log;/**文件日志   */
CControl *m_control;
CControl *m_control2;
public:
	/** 构造函数.
       * 初始化成员变量
       */
CKEYBOARD();
	/** 析构函数.
       * 初始化成员变量
       */
~CKEYBOARD();
	/**!\brief
	  *初始化键盘设备
	  *\param hWnd代表主窗口
	  *\return 如果成功返回true,否则false
	  */
bool initKeyboard(HWND hWnd);
	/**!\brief
	  *键盘数据处理
	  *\return 返回键盘值
      */
 int ProcessKBInput()
	{
		char buffer[256];
		//-------------------取用输入状态----------------
		hr=m_lpDIDevice->GetDeviceState(sizeof(buffer),(LPVOID)&buffer);
        if FAILED(hr) 
		{ 
		m_Log.Write("取用输入状态失败(键盘)");
		CleanUpDirectInput();
		} 
		int m_keychar[2];
		m_keychar[0]=0;
		m_keychar[1]=0;
		if(buffer[m_control2->iUpKey]&0X80)
		{
			m_keychar[1]=1;
		}
		if(buffer[m_control2->iDownKey]&0x80)
		{
			m_keychar[1]=2;
		}
		if(buffer[m_control2->iLeftKey]&0x80)
		{
			m_keychar[1]=3;
		}
		if(buffer[m_control2->iRightKey]&0x80)
		{
			m_keychar[1]=4;
		}
		if(buffer[m_control2->iEndKey]&0x80)
		{
			m_keychar[1]=5;
		}
		if(buffer[m_control->iUpKey]&0X80)
		{
			m_keychar[0]=1;
		}
		if(buffer[m_control->iDownKey]&0x80)
		{
			m_keychar[0]=2;
		}
		if(buffer[m_control->iLeftKey]&0x80)
		{
			m_keychar[0]=3;
		}
		if(buffer[m_control->iRightKey]&0x80)
		{
			m_keychar[0]=4;
		}
		if(buffer[m_control->iEndKey]&0x80)
		{
			m_keychar[0]=5;
		}
		return m_keychar[0]*10+m_keychar[1];
	}
	/**!\brief
	  *清空资源
	  */
void CleanUpDirectInput();
    /**!\brief
	  *设置键盘
	  */
void SetKey(int ,CControl *);

};
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -