getmessage(msg,null,0,0) 错误(100分)

  • 主题发起人 主题发起人 pount
  • 开始时间 开始时间
P

pount

Unregistered / Unconfirmed
GUEST, unregistred user!
在使用getmessage(msg,null,0,0) 时,出现错误"Invalid Variant conversation" ,这是为何?
 
null是Variant类型的。这里应该用<br>&nbsp; getmessage(msg,0,0,0);<br><br>
 
BOOL GetMessage( )參數如下<br>LPMSG lpMsg, <br>// address of structure with message <br>&nbsp;<br>HWND hWnd, <br>&nbsp;// handle of window <br>&nbsp;<br>UINT wMsgFilterMin, <br>&nbsp;// first message <br>&nbsp;<br>UINT wMsgFilterMax <br>&nbsp;// last message <br>&nbsp;<br>第一個不是消息結構的<br>&nbsp;<br>
 
不,lpMsg是消息结构的。<br>他指向的是从消息队列中得来的一个消息。<br>解释如下:<br>&nbsp; &nbsp;If hWnd is NULL, GetMessage retrieves messages for any window that belongs to the calling thread and thread messages posted to the calling thread via PostThreadMessage.<br>&nbsp; &nbsp;Thread messages, posted by the PostThreadmessage function, have a message hWnd value of NULL. If wMsgFilterMin and wMsgFilterMax are both zero, GetMessage returns all available messages<br>懂了吧!
 
我需要得到所有窗体的消息,在getmessage(msg,null,0,0)中,NULL的意思按Delphi4.0的解释是所有消息,但调用时发出"Invalid Variant Conversation",这是否需要将原Delphi4.0进行Update2,或3?
 
在Delphi 1.0 中,用getmessage(msg,0,0,0)是可以的,在Delphi4.0中,<br>其WIndows API说明,必须采用getmessage(msg,null,0,0),<br>但运行时,出现"Invalid Variant Conversation",这是否Delphi4<br>的BUG,是否必须对Delphi4Update2或3?
 
请各位大侠多伸援助之手,在此有礼了!
 
各位大侠能否在自己的机器上Delphi4.0下试一下该语句,若正常可否告诉<br>我各位采用的Windows的版本和Delphi的版本,是否我的Windows有问题?
 
多谢各位援助!但问题还未解决,哪位高手在自己的机器上试一下,看是否行的<br>通。在Delphi1.0下,用getmessage(msg,0,0,0)完成的功能,在Delphi4.0<br>下是否getmessage(msg,null,0,0)?但用此语句后,就出现<br>"Invalid Variant Conversation".那位高手能够指点迷津?
 
是否Windows本身版本不对?还是Delphi4不支持该方式?
 
To xww:<br>&nbsp; &nbsp; &nbsp; 我的Windows版本应该没问题,请问是Delphi4的问题?还是<br>要Update?
 
这个问题经反复调试,后来又请教HUizhang终于知道是<br>Null为C语言的用法,0为Pascal的用法。感谢各位援手!
 
多人接受答案了。
 
后退
顶部