8,304
社区成员
发帖
与我相关
我的任务
分享
//判断用户按键函数
bool CGameEngine_Input::ReadKeyboard(){
//m_pKeyboardDevice->Acquire(); //使用该语句就可以重新获取
if(DIERR_INPUTLOST==m_pKeyboardDevice->GetDeviceState(sizeof(m_KeyBuffer),(LPVOID)m_KeyBuffer)){
m_pKeyboardDevice->Acquire(); //重新获取键盘的使用权
if(FAILED(m_pKeyboardDevice->GetDeviceState(sizeof(m_KeyBuffer),(LPVOID)m_KeyBuffer))){
return false;
}
}
return true;
}
#include "ENinput.h"
HRESULT ENInput::LHxxGET_INPUTCHAR(UINT msg, WPARAM wparam, LPARAM lparam ,
char *buffer)
{
if((msg == WM_CHAR) && (wparam != VK_RETURN) )//接收输入消息
{
int len;
switch(wparam)
{
case VK_BACK: // backspace, delete 2 char if chn, delete 1 char if eng
len=lstrlen(buffer);
if (len>0)
{
if ( buffer[len-1] < 0 && len > 1 ) // chinese character
{
buffer[len-1]=0;
buffer[len-2]=0;
}
else
buffer[len-1]=0;
}
break;
default: // catch the string
if (lstrlen(buffer)>99)
break;
char Chat[2];
Chat[0]=(char)wparam;
Chat[1]=0;
lstrcat(buffer,Chat);
break;
}
}
return 0;
}
//---------------------------------------------------------------
//name:LHxxGET_INPUTCHAR()
//Desc :读输入信息,和检测鼠标没按
//Parameter:
// msg :回调窗口参数
// wparam :回调窗口参数
// lparam :回调窗口参数
// buf :保存输入信息
// LkeyDown :鼠标左key不按下了会设0
// RkeyDown :鼠标右key不按下了会设0
//---------------------------------------------------------------
HRESULT LHxxGET_INPUTCHAR(UINT msg, WPARAM wparam, LPARAM lparam ,char *buffer);