Y
yangmingnian
Unregistered / Unconfirmed
GUEST, unregistred user!
问题是这样的,我声明了一个窗口类(从TForm继承),在类中我注册了系统全局热键(Alt+F4),然后声明了一个热键处理函数如下:
procedure HotKeyDown(var Msg: Tmessage)
message WM_HOTKEY;
后来考虑到子类窗口(子类窗口在同一时间只有一个,不会发生热键冲突现象)中可能要自己单独处理该热键事件,于是便改成如下模式:
procedure HotKeyDown(var Msg: Tmessage)
message WM_HOTKEY
virtual;
然后在子类窗口中声明如下:
procedure HotKeyDown(var Msg: Tmessage)
message WM_HOTKEY
override;
结果编译时出了一大堆错误,后来一查书才知道消息句柄方法根本不能使用Virtual,Dynamic,Override,Abstract等指令字,害得我白忙活了一场。
不知有哪位大侠能帮我解决这个问题,实现代码的重用性!(我可不想在每个子类窗口中都重新注册全局热键,如果要注册很多热键的话,那岂不是很麻烦)
procedure HotKeyDown(var Msg: Tmessage)
message WM_HOTKEY;
后来考虑到子类窗口(子类窗口在同一时间只有一个,不会发生热键冲突现象)中可能要自己单独处理该热键事件,于是便改成如下模式:
procedure HotKeyDown(var Msg: Tmessage)
message WM_HOTKEY
virtual;
然后在子类窗口中声明如下:
procedure HotKeyDown(var Msg: Tmessage)
message WM_HOTKEY
override;
结果编译时出了一大堆错误,后来一查书才知道消息句柄方法根本不能使用Virtual,Dynamic,Override,Abstract等指令字,害得我白忙活了一场。
不知有哪位大侠能帮我解决这个问题,实现代码的重用性!(我可不想在每个子类窗口中都重新注册全局热键,如果要注册很多热键的话,那岂不是很麻烦)