精通BCB者请进,自定义类之间如何传递消息?

flyfeel 2003-08-20 12:46:47
自己编写了若干通信类,如何实现通信类之间消息传递?
1.不要使用Windows消息机制,因为消息有时候可能丢失,而且要绑定到窗体上才能接收消息
2.自定义的类运行时会有多个实例,消息最终传递给类的成员函数,类的成员函数是没有接口指针的,接口应为类指针+偏移地址
3.曾考虑采用回调函数实现,可回调函数一般为全局或静态的
...全文
90 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuriver 2003-08-20
  • 打赏
  • 举报
回复
怎么可能会绕过windows消息机制呢,呵呵。
dragonhux 2003-08-20
  • 打赏
  • 举报
回复
perform
好像是可以绕过Windows的消息机制,
使用BCB自己的消息机制,
简单点就是不需要送到消息缓冲区的!
zcchm 2003-08-20
  • 打赏
  • 举报
回复
to 楼上,楼上的楼上:

C++里面,调用类对象的成员函数,被看作是向这个对象发消息,此消息不同与windows的消息。函数名即消息名,函数参数即消息参数。
xizhouhawk 2003-08-20
  • 打赏
  • 举报
回复
消息的传递除了一:windows或应用程序的消息栈
二:直接发送到窗口。
是不是还有直接发送到其他某种(不包括窗口)类对象这中机制啊,我是菜鸟,如果楼主知道的话,烦请解释一下。
windlyzhang 2003-08-20
  • 打赏
  • 举报
回复
不太明白,你不使用Windows消息机制,怎么对对象传递消息啊?

你用的平台是windows吗?

学习!
Siney 2003-08-20
  • 打赏
  • 举报
回复
2.自定义的类运行时会有多个实例,消息最终传递给类的成员函数,类的成员函数是没有接口指针的,接口应为类指针+偏移地址

你可以设计一个公开的方法,类似于WndProc这样的,另一个类需要传递消息的时候,可以直接调用这个函数。

void WndProc(int msg,DWORD WPARAM,LPARAM);

3.曾考虑采用回调函数实现,可回调函数一般为全局或静态的

回调函数在bcb里可以不用是全局或静态的,他可以是在类的内部,这其实就是像自定义事件一样的机制。

-----------------------------
其实看你的通讯类如何设计,如果他们都继承自一个基类,而这个基类留出一个虚接口,那么所有的类都可以通过这个虚接口通讯了。
zcchm 2003-08-20
  • 打赏
  • 举报
回复
不太明白

你是在类之间通讯,还是在对象之间通讯?

如果是在类之间,回调函数应该可以呀。

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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