下面的这些VC语句在DELPHI中怎么写呢
static const UINT MsgDataReady = ::RegisterWindowMessage(DATA_READY);
ON_REGISTERED_MESSAGE(MsgDataReady, OnDataReady)
RegisterMessageNotifyHandle(m_hWnd, MsgDataReady);
LRESULT CHKVisionDlg::OnDataReady(WPARAM wParam, LPARAM lParam)

解决方案 »

  1.   

    var
      MsgDataReady: UINT;MsgDataReady = RegisterWindowMessage(DATA_READY);ON_REGISTERED_MESSAGE(MsgDataReady, OnDataReady)
    RegisterMessageNotifyHandle(m_hWnd, MsgDataReady);
    LRESULT CHKVisionDlg::OnDataReady(WPARAM wParam, LPARAM lParam)
    // 这是VC里面的消息映射 
    ON_REGISTERED_MESSAGE 这种是定义的宏。。delphi你像自定义消息那样试试,不过好像不太行
      

  2.   

    哦 查了一下 先用RegisterWindowMessage把DATA_READY定义为一个新的windows消息
    然后映射此新消息的窗口处理函数RegisterMessageNotifyHandle 这个函数没找到 应该是定义相应的消息相应窗口把??LRESULT CHKVisionDlg::OnDataReady(WPARAM wParam, LPARAM lParam) 这是定义新注册的消息 MsgDataReady的消息相应函数。。不过我不清楚DELPHI里面的具体做法。。
      

  3.   

    ON_REGISTERED_MESSAGE(MsgDataReady, OnDataReady)
    就是说用OnDataReady过程处理MsgDataReady,不知在DELPHI中应该怎样
      

  4.   

    procedure OnDataReady(var msg: TMessage);message MsgDataReady; // write it in your formpls try this...
      

  5.   

    Delphi 里处理自定义的消息不想VC里那么麻烦
    RegisterWindowMessage 只有在多个Application 里处理同一个消息时,才用到,如果你在一个应用程序里处理自定义的消息不用RegisterWindowMessage。
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;const
      WM_MYMESAGE = WM_USER + 1001; //******定义你自己的消息type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
        procedure MyMessageProc(var Msg: TMessage); message WM_MYMESAGE; //*****声明消息映射应设过程
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.MyMessageProc(var Msg: TMessage); //****处理自定义消息的过程定义
    begin
      ShowMessage('abcd');
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      SendMessage(Handle, WM_MYMESAGE, 0, 0);
    end;end.