关于Tmessage的一个问题,有兴趣的请……

superaladn 2003-09-10 10:46:26
最近接触到一个项目,其中牵涉到消息的处理,和自定义.
看到一些相关的数据,了解到如何来定义自己的消息和消息处理函数,以及如何使用消息陷阱编程,
但,其中都没有涉及到一点:如何将触发事件和相应的消息对应.比如说,利用com1口,通讯,我可以自
定义一个消息WM_RECEIVEDATA,用来表明有数据要接收.但,如何将有数据要接收这个事件和WM_RECEIVEDATA这个消息对应起来,一直都很迷惑.
希望高手指点一二,不胜感激!!!!
...全文
77 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zousoft 2003-09-12
  • 打赏
  • 举报
回复
简单的说就是一打一托:一个发(PostMessage);一个收(message指示字)
一些常用的事件消息都是windows自动发的,至于你说得特殊消息就要自己发了。

我也有些纳闷,像用户插拔耳机,开关显示器这样的消息该怎么发?

帮你顶!
w1w2w3w4 2003-09-12
  • 打赏
  • 举报
回复
你也可以重构WNDPROC,在里面对每一种消息来处理。
如:
procedure youclass.wndproc(var message:tmessage);
begin
if message.msg=你自定义的消息 then
begin
……
end;
if message.msg=你自定义的消息 then ……

hkbarton 2003-09-11
  • 打赏
  • 举报
回复
在一个过程的声明部分后面用message指示字加上你要处理的消息就表明这个过程是处理这个消息的,注意这个过程的参数必须是一个封装的消息包
superaladn 2003-09-11
  • 打赏
  • 举报
回复
不是很清楚.....
能說頭說起嗎?
Paddle 2003-09-10
  • 打赏
  • 举报
回复
在你的主程序中写自己消息处理过程
for example
procedure WMReceiveData(var msg: TMessage);message wm_receivedata;

procedure WMReceiveData(var msg: TMessage);
begin
// add your code here
end;
有数据要接收的时候PostMessage(Hwnd,WM_RECEIVEDATA,0,0);
wparam,lparam可以自己定义
sixgj 2003-09-10
  • 打赏
  • 举报
回复
呵呵。

1,184

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧