我的程序要实现如下功能:每秒接收一定的数据,实时处理后以图像的方式显示出来,由于处理数据需要一定时间,为不影响接收,打算采取多线程的方式,主线程显示数据,一个线程接收处理数据,数据由另一程序以sendmessage WM_COPYDATA方式发送,我试了一下,自己创建线程中无法收到sendmessage WM_COPYDATA消息,这可怎么办呢?
解决方案 »
- 请教2表连接的sql语句
- Flash中的as脚本的readutfbytes在delphi中是什么函数?
- 怎样把listbox中显示的歌曲名按照顺序或循环播放?
- 请问整段代码左移右移的快捷键是什么?
- 请教高手:C/S版的办公自动化系统如何在Internet上使用
- 2000下写的COM+应用服务,如何安装在98下?????
- 一个小问题,关于回车键盘在dbgrid中的问题!
- 寻求《Delphi5.x分布式多层应用系统篇》示例代码
- dll中有一个窗体,当我关闭它时非得点击两次关闭按钮
- 很菜的数据库问题
- 用IDhttp 给网页发送Get,Post请求为什么感觉速度很慢呢
- QuickReport怎么打印多页
你在线程里,创建一个隐藏的窗口(大小为0),并公布这个窗口的handle,外部直接取用这个handle sendMessage即可。然后,可以override 窗口的wndProc 或 直接写消息处理函数 来处理你的业务需要;也可以子类化该窗口,不必重载窗口类。
动态创建一个窗口Tmyform.create(self),如何隐藏而且让其大小为0呢?如何公布窗口的HANDLE呢?谢谢~
此窗口随线程生灭。
height,width设置为0即可,或参考application中的隐藏form创建方式。
创建完窗体,记住handle,也可参考Application.handle
http://www.cnblogs.com/gzcszzx/articles/2110675.html
{AllocateHWnd是Classes单元的全局过程,需要一个TWndMethod类型的参数(即一个窗
口过程);其作用是创建一个不可见窗口并将参数传入的窗口过程关联于它,返回所创建窗口的句柄}
if FHandle <> 0 then
Classes.DeallocateHWnd(FHandle); {销毁已创建的窗口}
你为什么不开一个处理线程呢。
一般由线程PeekMessag就会建立线程消息队列