有一些情况可能需要依次按下某些按键来响应一个函数,例如按下了shift+ctrl,然后依次按下ABC,才会执行某个函数,今天正好碰到这个问题,想了个笨办法,实现如下:
// 忽略注册热键之类的东西,直接贴窗口过程
static bool bTDown=false;
static bool bRDown=false;
static bool bYDown=false;
switch(pMsg->message)
{
case WM_HOTKEY:
{
if(HOTKEY_SHOWTEAM_T==pMsg->wParam)
{
bTDown=true;bRDown=false;bYDown=false;
}else if(HOTKEY_SHOWTEAM_R==pMsg->wParam)
{
if(bTDown==true)
{
bRDown=true;
}
else
{
bTDown=bRDown=bYDown=false;
}
}else if(HOTKEY_SHOWTEAM_Y==pMsg->wParam)
{
if(bTDown==true&&
bRDown==true)
{
bYDown=true;
}
else
{////
bTDown=bRDown=bYDown=false;
}
}
///////////////////
if(bRDown&&bYDown&&bTDown)
{
{
//Your code here }
}
}break;
case WM_KEYUP:
{
if('T'!=pMsg->wParam&&
'R'!=pMsg->wParam&&
'Y'!=pMsg->wParam)
{
bTDown=bRDown=bYDown=false;
}
}
}
本文介绍了一种通过连续按下特定组合键来触发自定义函数的方法。在Windows应用程序中,可以通过监听特定的按键顺序(如Ctrl+Shift+Alt后依次按下TRY),实现复杂的功能调用。
4223

被折叠的 条评论
为什么被折叠?



