if (Key=#13) then
  begin
    if ActiveControl.ClassName='TDBGridEh' then
      PostMessage(ActiveControl.Handle,WM_KEYDOWN,VK_TAB,0)
    else
      SendMessage(Self.Handle,WM_NEXTDLGCTL,0,0);
    Key:=#0;
  end;
PostMessage 和 SendMessage 里的参数怎么理解啊~~~

解决方案 »

  1.   

    参看delphi的window sdk帮助 你会有很大的收获
      

  2.   

    回车代替tabdbgrid移动,其实就是发送一个按键消息给dbgrid
      

  3.   

    if (Key=#13) then //如果按下回車
      begin
      if ActiveControl.ClassName='TDBGridEh' then //如果當前控制的控件是TDBGridEh類型
        PostMessage(ActiveControl.Handle,WM_KEYDOWN,VK_TAB,0) //發送 tab 鍵按下的消息
        else
          SendMessage(Self.Handle,WM_NEXTDLGCTL,0,0);//發送 選擇下個控件的消息
        Key:=#0;
      end;
      

  4.   

    上面代码的意思是说如果按下enter键就给 TDBGridEh焦点否则发送消息同时空格
    PostMessage只负责将消息放到消息队列中,不确定何时及是否处理 
    SendMessage要等到受到消息处理的返回码(DWord类型)后才继续PostMessage执行后马上返回SendMessage必须等到消息被处理后才会返回。
     
      

  5.   

    用Enter键来代替Tab键,即当你按下Enter时,就相当于按下了TabTab键知道有什么意义吗,