Delphi中按钮为什么无法响应VK_Left,VK_UP等4个方向键,Form的KeyPreview已经设置为True。

 我来答
匿名用户
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以及后面的组合键都可以完成选择,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
微测检测5.10
2023-05-10 广告
您好!建议咨 深圳市微测检测有限公司,已建立起十余个专业实验室,企业通过微测检测就可以获得一站式的测试与认 证解决方案;(EMC、RF、MFi、BQB、QI、USB、安全、锂电池、快充、汽车电子EMC、汽车手机互 联、语音通话质量),认证遇... 点击进入详情页
本回答由微测检测5.10提供
rqzhong
2013-09-09 · TA获得超过271个赞
知道小有建树答主
回答量:191
采纳率:50%
帮助的人:90.9万
展开全部
你得先搞清楚
Form的KeyPreview已经设置为True
其作用是让Form先于其子控件接收KeyPress消息。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhengjingze520
2013-09-09
知道答主
回答量:7
采纳率:0%
帮助的人:3.3万
展开全部
要在keydown事件中写
追问
我已经找到原因了,其实是TabStop的问题,使用VK_UP等方向控制键时需要将Button的TabStop属性设置为false才可以,否则即使在Keydown里面写上代码也无法实现。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式