DELPHI做的程序最小化后快捷键失灵怎么回事?

来源:百度知道 编辑:UC知道 时间:2024/06/25 17:43:50
我用DELPHI做了一个小小程序,我把它最小化到托盘了,我希望在它最小化的时候我按一个快捷键它就返回来,这个快捷键该怎么做?
我没分了,实在给不了,只能说谢谢了

路见不平,拔刀相助,没分也告诉你!

假设你的窗口名叫Form1,类名是TForm1:

先加个函数:
function TForm1.RegHotKey(const ID: string; const Key: Cardinal; const Shift: Cardinal = MOD_CONTROL): Word;
begin
Result := GlobalAddAtom(PAnsiChar(ID));
if not RegisterHotKey(Handle, Result, Shift, Key) then Halt;
end;

在FormCreate里加个热键:
procedure TForm1.FormCreate(Sender: TObject);
begin
hctrla := RegHotKey('HOTKEY_CTRL_A', $41, MOD_CONTROL);
end;

在FormDestroy里个注销热键:
procedure TForm1.FormDestroy(Sender: TObject);
begin
UnRegisterHotKey(Handle, hctrla);
end;

再加个处理热键消息的过程:
procedure WMHotKey(var Msg: TWMHotKey); message WM_HOTKEY;

procedure TForm1.WMHotKey(var Msg: TWMHotKey);
begin
if msg.Hotkey = hctrla then Visible := true;
end;

一切OK