说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

消息处理:怎样捕获TEDIT的EN_CHANGE的消息?

编辑:说三道四文库 发布时间:2018-06-22 11:53
HTML文档下载 WORD文档下载 PDF文档下载
我现在学消息处理问题碰到一个难题:
    一个FORM1中有EDIT1,我怎样捕获EDIT1的EN_CHANGE的消息并进行事件处理。我不想用EDIT1.ONCHANGE来处理。希望详细说明,

OldProc := SetWindowLong(Edit1.Handle, GWL_WNDPROC, @YourProcedure);

procedure yourprocedure(h: hwnd; msg: longword; wparam,lparam: longint)
begin
  if msg = en_change then
    doyourproc
  else
    odlproc(h, msg, wparam, lparam);
end;
不行,可能是我笨,我不知以下这句放在 单元中的哪个地方?
OldProc := SetWindowLong(Edit1.Handle, GWL_WNDPROC, @YourProcedure);
FormCreate
自己继承一个
我再试一回,在《D5开发人员指南》有这样的例子,多谢BaldZhang(BaldZhang)提醒 !
to BaldZhang(BaldZhang) 不通呀!
下面这行编译出错:Variable required,就是因为这个操作不行:@YourProcedure
OldProc := SetWindowLong(Edit1.Handle, GWL_WNDPROC, @YourProcedure);
您能POST个完整的单元例子吗?

另:用function yourprocedure(h: hwnd; msg: longword; wparam,lparam: longint):longint;stdcall;
以上oldproc:=  通过,但没法捕捉edit1.的消息。



备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘