HWND_BROADCAST宏定义有没有重复的?
hwd_ReceivedPhoneMessage确定有效吗?
HWND_BROADCAST定义发出来看看

解决方案 »

  1.   

    @Miami_Dexter 
     HWND_BROADCAST 是Delphi 系统定义的呀 
    整个代码就这里使用了SendMessage
      

  2.   

    @Miami_Dexter var
            hwd_ReceivedPhoneMessage:HWND;hwd_ReceivedPhoneMessage定义成全局变量了
      

  3.   

    type
      TPhoneMsgSvr = class(TWinControl)
      private  public
        procedure WndProc(var Message: TMessage);override;
      

  4.   


    好长时间没搞Delphi了,还以为是你自己定义的消息。
    http://bbs.csdn.net/topics/280070518
      

  5.   

    TComm232
    TPhoneMsgSvr
    在一个进程里吗
      

  6.   

    @Miami_Dexter   
    我是写的一个控件,所以是没有窗口的,procedure TComm232.CommReceiveData(Sender: TObject; Buffer: Pointer;BufferLength: Word);  这里怎么发Windows消息给TPhoneMsgSvr   .
      

  7.   

    @ksrsoft
    我写的是一个控件,通过串口通信,封装一些东西,然后以后我就可以快速使用控件开发程序了。
    我就想在串口接收事件里发一个WINDOWS消息传递我解析后的数据给TPhoneMsgSvr。我在一个简单的窗体里,我这样子发WINDOWS消息的方式是可以传递数据的,我不懂为什么在这里无法传递消息。
      

  8.   

    HWND_BROADCAST这个参数换成TPhoneMsgSvr窗口的句柄,SendMessage第一个参数是接收消息对象的句柄,你要给窗体发,就用窗体的句柄
      

  9.   

    问题解决了
     FWinHwnd:=AllocateHWnd(WndProc);      //虚拟窗口
    DeallocateHWnd(FWinHwnd);
    加上楼上说的HWND_BROADCAST这个参数换成TPhoneMsgSvr窗口的句柄  就可以了。