用了消息循环,但主窗体的菜单快捷键不起作用。如:F4、Ctrl+D等,该如何处理
用了消息循环,但主窗体的菜单快捷键不起作用。如:F4、Ctrl+D等
我用了消息循环,但主窗体(TfrmMain)的菜单快捷键不起作用。如:F4、Ctrl+D等,窗体上TAB键又能移动控件焦点,请高手帮忙解决,谢谢!
下面是项目文件的代码:
program Main;
uses
Forms,
Windows,
UfrmMain in 'UfrmMain.pas' {frmMain};
var
FMsg: TMSG;
FMain: TfrmMain;
{$R *.res}
begin
{
Application.Initialize;
Application.CreateForm(TfrmMain, frmMain);
Application.Run;
}
fmain:=tfrmmain.Create(application);
fmain.show;
while GetMessage(FMsg, 0, 0, 0) do begin
TranslateMessage(FMsg);
DispatchMessage(FMsg);
end;
end.
------解决方案--------------------
曾经记得光有消息循环还不够,好像还要注册快捷键。我很久以前用汇编写过一个窗体。。
------解决方案--------------------
RegisterHotKey(m_hWnd, ID_F4, 0, VK_F4);
RegisterHotKey(m_hWnd, ID_CTRL_D, MOD_CONTROL, 68); 'ctrl+D'
procedure WMHOTKEY(var AMsg: TMessage);message WM_HOTKEY;
var
Pt: TPoint;
begin
if AMsg.wParam = ID_F4 then
begin
end
else if AMsg.wParam = ID_CTRL_D then
begin
end;
end;
------解决方案--------------------
嗯,好像是这样。。
我用了消息循环,但主窗体(TfrmMain)的菜单快捷键不起作用。如:F4、Ctrl+D等,窗体上TAB键又能移动控件焦点,请高手帮忙解决,谢谢!
下面是项目文件的代码:
program Main;
uses
Forms,
Windows,
UfrmMain in 'UfrmMain.pas' {frmMain};
var
FMsg: TMSG;
FMain: TfrmMain;
{$R *.res}
begin
{
Application.Initialize;
Application.CreateForm(TfrmMain, frmMain);
Application.Run;
}
fmain:=tfrmmain.Create(application);
fmain.show;
while GetMessage(FMsg, 0, 0, 0) do begin
TranslateMessage(FMsg);
DispatchMessage(FMsg);
end;
end.
------解决方案--------------------
曾经记得光有消息循环还不够,好像还要注册快捷键。我很久以前用汇编写过一个窗体。。
------解决方案--------------------
RegisterHotKey(m_hWnd, ID_F4, 0, VK_F4);
RegisterHotKey(m_hWnd, ID_CTRL_D, MOD_CONTROL, 68); 'ctrl+D'
procedure WMHOTKEY(var AMsg: TMessage);message WM_HOTKEY;
var
Pt: TPoint;
begin
if AMsg.wParam = ID_F4 then
begin
end
else if AMsg.wParam = ID_CTRL_D then
begin
end;
end;
------解决方案--------------------
嗯,好像是这样。。