为什么 热键注册成功了,按下热键无响应??
代码:
.h
class TForm1 : public TForm
{
__published: // IDE-managed Components
private: // User declarations
int caphotkeyid;
int caphotkeyid2;
public: // User declarations
__fastcall TForm1(TComponent* Owner);
void __fastcall OnHotKey(TMessage & msg);
_fastcall ~TForm1();
protected:
BEGIN_MESSAGE_MAP
VCL_MESSAGE_HANDLER(WM_HOTKEY, TMessage, OnHotKey)
END_MESSAGE_MAP(TForm)
};
.cpp
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
caphotkeyid=GlobalAddAtom("lbggpcaphotkey")-0xC000;
caphotkeyid2=GlobalAddAtom("lbggpcaphotkey2")-0xC000;
if (RegisterHotKey(Form1->Handle,caphotkeyid,MOD_CONTROL,'g')==0)
{
ShowMessage("error");
}
if (RegisterHotKey(Form1->Handle,caphotkeyid2,MOD_CONTROL,'f')==0)
{
ShowMessage("error");
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::OnHotKey(TMessage & msg)
{
ShowMessage("123");//无响应
if (msg.WParam==caphotkeyid)
{
ShowMessage("ok");//无响应
}
}
_fastcall TForm1::~TForm1()
{
UnregisterHotKey(Form1->Handle,caphotkeyid);
DeleteAtom(caphotkeyid);
}
问题 一: 我按下ctrl+g+f 后 消息函数无响应.
问题二: 我可以这样注册两个热键吗?"g" 和"f";