你这样做的话,首先得让主窗体的到焦点,然后再
用菜单的热键启动窗体。不符合要求。
我的用户不用鼠标,只希望通过一个键来切换子窗
体。下面是我的方法:
我在子窗体的KeyPress事件中添加以下代码(其中FrmMain是主窗体,F12是
主窗体启动另一个子窗体的菜单热键)
procedure TFrmOperat.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
begin
//FrmMain.SetFocus;
POSTMessage( FrmMain.handle, WM_KEYDOWN, VK_F12 ,0);
end;
end;
我在主窗体的KeyDown事件中添加以下代码:
procedure TFrmMain.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
showmessage(inttostr(key));
end;
我想要用户在按下回车键就可以模拟主窗体按下F12,启动另一个窗体。
结果确实也截获到了发送过来的Key值。
但是另一个窗体没有出来,为什么?是不是我的方法不对?
还有,我如何向主窗体发送例如(Shift + A)的消息?