你的问题说的不清楚。不知道你是不想用个热键的方式。
帮你写个例子吧。
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
//定义一个热键消息事件
procedure HotKeyDown(var Msg:Tmessage);message WM_HOTKEY;
public
{ Public declarations }
end;
var
Form1: TForm1;
HotKeyid:Integer;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
RegKey:longbool;
begin
//GlobalAddAtom函数得到唯一标识
HotKeyid:=GlobalAddAtom('MyHotKey')-$C00;
//HotKeyId的合法取之范围是0x0000到0xBFFF之间, GlobalAddAtom函数得到的值
//在0xC000到0xFFFF之间,所以减掉0xC000来满足调用要求。
RegKey:= RegisterHotKey(Handle,HotKeyid,0,VK_F5);
if RegKey=false then showmessage('热键注册失败');
//热键的辅助按键包括Mod_Ctrl 、Mod_Alt、Mod_Shift,对于Windows兼容键盘还支持Windows
//键,即其键面上有Windows标志的那个键,其值为Mod_win。
//上面 的代码注册了一个热键:F5。
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
UnRegisterHotKey(handle,HotKeyid); //注销热键
end;
procedure TForm1.HotKeyDown(var Msg: Tmessage);
begin
//如果按下F5键, 响应你想要的操作
if Msg.LParamHi=VK_F5 then
begin
form1.Visible := not form1.Visible;
end
end;
end.
在Form1的Active事件里添加代码:Web1.SetFocus. // Web1为你所说的Web控件。
procedure TForm1.FormActivate(Sender: TObject);
begin
Web1.SetFocus;
end;
有问题再Hi我~
最小化了还能获取焦点吗?
劫持postmessage或者sendmessage吧
不明白你的问题,再说清楚点吧。