X x-dsl Unregistered / Unconfirmed GUEST, unregistred user! 2005-06-08 #1 想请教高手几个问题<br>1.消息队列如何创建?<br>2.如何从消息队列里面获取消息?(获取完以后删除)<br>3.消息里面可否带参数(譬如说接收到一个画矩形的消息,我怎么定义消息里面的XY然后发送到对应的句柄?)(不需要等待返回)
想请教高手几个问题<br>1.消息队列如何创建?<br>2.如何从消息队列里面获取消息?(获取完以后删除)<br>3.消息里面可否带参数(譬如说接收到一个画矩形的消息,我怎么定义消息里面的XY然后发送到对应的句柄?)(不需要等待返回)
X x-dsl Unregistered / Unconfirmed GUEST, unregistred user! 2005-06-08 #2 想请教高手几个问题<br>1.消息队列如何创建?<br>2.如何从消息队列里面获取消息?(获取完以后删除)<br>3.消息里面可否带参数(譬如说接收到一个画矩形的消息,我怎么定义消息里面的XY然后发送到对应的句柄?)(不需要等待返回)
想请教高手几个问题<br>1.消息队列如何创建?<br>2.如何从消息队列里面获取消息?(获取完以后删除)<br>3.消息里面可否带参数(譬如说接收到一个画矩形的消息,我怎么定义消息里面的XY然后发送到对应的句柄?)(不需要等待返回)
A Another_eYes Unregistered / Unconfirmed GUEST, unregistred user! 2005-06-10 #3 1. 只要你在当前线程中调用过PeekMessage, GetMessage等消息处理函数,windows会自动为当前线程创建消息队列<br>2. PeekMessage,GetMessage函数<br>3. 消息中可以带两个DWORD参数:WParam和LParam, 因此如果你要给其它进程传数据,那么可以传递的参数量很小,总共只有8个字节(除非使用系统WM_COPYDATA消息), 如果给自己进程中其它线程或窗口传消息,那么可以传任意类型,任意数量的参数, 只要把WParam和LParam当成指针传递给其它窗口就可以了,比如要传一个矩形, 可以在WParam中存入Rect结构的地址就搞定了。 当然,你必须控制好这些指针的释放时机,必须等对方处理完后再释放, 一个可行的办法是由发起者分配内存,由收到消息方释放(只适合本进程)。
1. 只要你在当前线程中调用过PeekMessage, GetMessage等消息处理函数,windows会自动为当前线程创建消息队列<br>2. PeekMessage,GetMessage函数<br>3. 消息中可以带两个DWORD参数:WParam和LParam, 因此如果你要给其它进程传数据,那么可以传递的参数量很小,总共只有8个字节(除非使用系统WM_COPYDATA消息), 如果给自己进程中其它线程或窗口传消息,那么可以传任意类型,任意数量的参数, 只要把WParam和LParam当成指针传递给其它窗口就可以了,比如要传一个矩形, 可以在WParam中存入Rect结构的地址就搞定了。 当然,你必须控制好这些指针的释放时机,必须等对方处理完后再释放, 一个可行的办法是由发起者分配内存,由收到消息方释放(只适合本进程)。