type
TForm1 = class(TForm)
……
protected
procedure WndProc(var Message: TMessage);override;
……procedure TForm1.WndProc(var Message: TMessage);
begin
if Message.Msg = WM_KEYDOWN then
showMessage('key pressed')
else
inherited;
end;在showMessage处设置断点,发现截取不到WM_KEYDOWN消息,但是把WM_KEYDOWN换为WM_MOUSEMOVE却可以执行showMessage,这是什么原因呢?
谢谢!
TForm1 = class(TForm)
……
protected
procedure WndProc(var Message: TMessage);override;
……procedure TForm1.WndProc(var Message: TMessage);
begin
if Message.Msg = WM_KEYDOWN then
showMessage('key pressed')
else
inherited;
end;在showMessage处设置断点,发现截取不到WM_KEYDOWN消息,但是把WM_KEYDOWN换为WM_MOUSEMOVE却可以执行showMessage,这是什么原因呢?
谢谢!
焦点在edit上,WM_KEYDOWN是edit的,不是form
谢谢!
对于OnKeyPress事件,不论你在这个函数中写什么,编译器都会在执行完你的代码后再在文本框中显示“1”,这种方法麻烦的地方就在于如何才能不让编译器将“1”显示出来