读书人

怎么在循环中让窗口句柄响应消息

发布时间: 2012-12-24 10:43:14 作者: rapoo

如何在循环中让窗口句柄响应消息
自己写的类,在内部用AllocateHWnd注册了一个窗口句柄
在某个函数中,要等待某个状态后才返回,于是用到了while

while status <> 0 do;

现在问题是,在while的时候,其他地方没法响应消息,没法处理这个status
导致这个循环变成了死循环,显然这里是不能用Application.ProcessMessages的

不知道有什么简单有效的解决方法?
[最优解释]
用事件对象。
"while status <> 0 do;" 换成 "WaitForSingleObject(事件对象句柄, INFINITE)".
接收到消息改变status的时候调用SetEvent,这样WaitForSingleObject就返回了。
[其他解释]
uses Windows;
var msg:Tmsg;
GetMessage(msg,0,0,0);
[其他解释]
用多线程的方法吧。
[其他解释]
uses Windows

读书人网 >.NET

热点推荐