VC中关于处理键盘按键消息事件的问题!
腌鲜鳜鱼 2009-01-08 10:35:37 最近在VC6.0中写了个基于对话框的程序。其中要通过键盘的方向键移动对话框里Picture控件中所绘制线条的位置。
但是每次按方向键时,焦点总是会跑到其他控件上影响了对图像中线条的控制。跟踪调试时,发现按下方向键的事件
被处理了4次,请问如何排除这样干扰,使用方向键控制图像中的线时,焦点不会移动到其他地方而影响我想要的操作。
我的简略代码:
在对话框的PreTranslateMessage(MSG* pMsg)方法中处理键盘事件:
MyDialog::PreTranslateMessage(MSG* pMsg)
{
......
if (::GetKeyState(VK_LEFT)<0 && !(::GetKeyState(VK_MENU)<0))
{
//IDC_VIDEO是图像绘制的窗口,一个Picture控件
::SetFocus(this->GetDlgItem(IDC_VIDEO)->GetSafeHwnd()); //IDC_VIDEO是图像绘制的窗口
switch(isModifyParamStrand)
{
case 0:
return;
case 1:
this->Line->x--; //改变线的x坐标
break;
}
}
}