Delphi中按钮为什么无法响应VK_Left,VK_UP等4个方向键,Form的KeyPreview已经设置为True。
3个回答
2013-09-10
展开全部
代码如下:
...
if((GetKeyState(VK_LSHIFT) & 0x8000) == 32768)
bShiftKeyPressed = TRUE;
if(bShiftKeyPressed)
{
switch(pMsg->wParam)
{
case VK_LEFT: // LEFT
AfxMessageBox("1");
m_p->shiftKeyPress(1);
break;
case VK_RIGHT:// RIGHT
AfxMessageBox("2");
m_p->shiftKeyPress(2);
break;
case VK_HOME: // HOME
AfxMessageBox("3");
m_p->shiftKeyPress(3);
break;
...
}
...
}
...
bShiftKeyPressed == TRUE是没有问题的
在IE中shift + HOME以及后面的组合键都可以完成选择,
...
if((GetKeyState(VK_LSHIFT) & 0x8000) == 32768)
bShiftKeyPressed = TRUE;
if(bShiftKeyPressed)
{
switch(pMsg->wParam)
{
case VK_LEFT: // LEFT
AfxMessageBox("1");
m_p->shiftKeyPress(1);
break;
case VK_RIGHT:// RIGHT
AfxMessageBox("2");
m_p->shiftKeyPress(2);
break;
case VK_HOME: // HOME
AfxMessageBox("3");
m_p->shiftKeyPress(3);
break;
...
}
...
}
...
bShiftKeyPressed == TRUE是没有问题的
在IE中shift + HOME以及后面的组合键都可以完成选择,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
微测检测5.10
2023-05-10 广告
2023-05-10 广告
您好!建议咨 深圳市微测检测有限公司,已建立起十余个专业实验室,企业通过微测检测就可以获得一站式的测试与认 证解决方案;(EMC、RF、MFi、BQB、QI、USB、安全、锂电池、快充、汽车电子EMC、汽车手机互 联、语音通话质量),认证遇...
点击进入详情页
本回答由微测检测5.10提供
展开全部
你得先搞清楚
Form的KeyPreview已经设置为True
其作用是让Form先于其子控件接收KeyPress消息。
Form的KeyPreview已经设置为True
其作用是让Form先于其子控件接收KeyPress消息。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
要在keydown事件中写
追问
我已经找到原因了,其实是TabStop的问题,使用VK_UP等方向控制键时需要将Button的TabStop属性设置为false才可以,否则即使在Keydown里面写上代码也无法实现。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询