我想在各edit之间实现:用户按“上”,就返回上一个edit
onkeydown代码如下:
………………
  if key=VK_UP then
  begin
    keybd_event(VK_SHIFT, 0, KEYEVENTF_EXTENDEDKEY,0);
    keybd_event(VK_TAB, 0, KEYEVENTF_EXTENDEDKEY,0);
    keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP,0);
 end
………………
这时问题来了:不管我有没有第三句调用,键盘的shift状态都没有取消!
即用户输入123变成!@#……
请教一下各位高手:我的调用哪儿出问题啦?

解决方案 »

  1.   

    这样写那
    keybd_event(VK_SHIFT,0,0,0); //按下s
    keybd_event(VK_SHIFT,0,2,0); //释放s
      

  2.   

    KEYEVENTF_EXTENDEDKEY -> 0  if key=VK_UP then
      begin
        keybd_event(VK_SHIFT, 0, 0,0);
        keybd_event(VK_TAB, 0, 0,0);
        keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP,0);
     end
      

  3.   

    reedseutozte,谢谢你,我把常量改为数字,就没事儿了
    而且,我发现这段代码在98下面就没有问题,2000下面才出现的
    看来有些api用的时候要小心啊!