delphi 控件焦点问题
我在Form1上放一个web控件,一个Edit控件,一个button控件,我想让Web控件始终是焦点,并切接受postmessage或者sendmessage的信息就是F...
我在Form1上放一个web控件,一个Edit控件,一个button控件,我想让Web控件始终是焦点,并切接受postmessage或者sendmessage的信息就是F5,当我把窗体最小话时,Web控件还能接受到postmessage或者sendmessage的按键信息并且刷新
展开
4个回答
展开全部
你的问题说的不清楚。不知道你是不想用个热键的方式。
帮你写个例子吧。
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.
帮你写个例子吧。
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我~
procedure TForm1.FormActivate(Sender: TObject);
begin
Web1.SetFocus;
end;
有问题再Hi我~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最小化了还能获取焦点吗?
劫持postmessage或者sendmessage吧
劫持postmessage或者sendmessage吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不明白你的问题,再说清楚点吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询