请各位大侠谈谈对消息机制的 概念理解, 怎样发送, 怎样获取, 最后实现目的.....

解决方案 »

  1.   

    定义自己的消息
    你去看看我这个贴子好了,上面有用到
    http://expert.csdn.net/Expert/topic/2094/2094919.xml?temp=.2000238
      

  2.   

    系统消息是由操作系统发送的,应用程序收到后做相应处理。
    如果是用delphi写程序的话,一般的消息处理不必手工编程,只要处理相应的事件即可
      

  3.   

    请帮我﹐我是在看别人的代码﹐没办法﹐开发的人已离开公司﹐有些地方不明白﹐請指教(送100分)。      PostMessage(TForm(Parent).Handle, pmRefreshChgReqItm, Word(true),0);
         
          pmRefreshChgReqItm = WM_USER+44;      WM_USER             = $0400;    上面三行代碼是在不的UNIT 中 提問﹕  1. 這里的 $0400  是什么? 能否用其它數值代替嗎? 如 $0777﹐$9999﹐0022等?
         2.  直接寫成  pmRefreshChgReqItm = $0400+44; 可以嗎? 那為何這樣作?
         3.  pmRefreshChgReqItm = WM_USER+44 為何要加上 44? 其它的數可以嗎?
         4.  WM_USER  = $0400; 在 unit Messages;中定義在﹐而我查了這個文件
             (unit Messages;)﹐在 DELPHI的菜單籃 view 下的 Units 和 Forms的
             選項都找不到? 請問unit Message 是系統定義的﹐還是程序員定義的?
             如是程序員﹐那他是在哪兒寫的?    另附 unit Message(部分)      { *********************************************************************** }
    {                                                                         }
    { Delphi Runtime Library                                                  }
    {                                                                         }
    { Copyright (c) 1991-2001 Borland Software Corporation                    }
    {                                                                         }
    { *********************************************************************** }{*******************************************************}
    {       Windows Messages and Types                      }
    {*******************************************************}unit Messages;{$A-}
    {$WEAKPACKAGEUNIT}interfaceuses Windows;{ Window Messages }const
      {$EXTERNALSYM WM_NULL}
      WM_NULL             = $0000;
      {$EXTERNALSYM WM_CREATE}
      WM_CREATE           = $0001;
      {$EXTERNALSYM WM_DESTROY}
      WM_DESTROY          = $0002;
      {$EXTERNALSYM WM_MOVE}
      WM_MOVE             = $0003;
      0010;
      {$EXTERNALSYM WM_QUERYENDSESSION}
      WM_QUERYENDSESSION  = $0011;
      {$EXTERNALSYM WM_QUIT}
      WM_QUIT             = $0012;
      {$EXTERNALSYM WM_MOUSEACTIVATE}
    { Edit Control Notification Codes }const
      {$EXTERNALSYM EN_SETFOCUS}
      EN_SETFOCUS  = $0100;
      {$EXTERNALSYM EN_KILLFOCUS}
      EN_KILLFOCUS = $0200;
      {$EXTERNALSYM EN_CHANGE}
      EN_CHANGE    = $0300;
      {$EXTERNALSYM EN_UPDATE}
      EN_UPDATE    = $0400;
      {$EXTERNALSYM EN_ERRSPACE}
      EN_ERRSPACE  = $0500;
      {$EXTERNALSYM EN_MAXTEXT}
      EN_MAXTEXT   = $0501;
      {$EXTERNALSYM EN_HSCROLL}
      EN_HSCROLL   = $0601;
      {$EXTERNALSYM EN_VSCROLL}
      EN_VSCROLL   = $0602;{ Edit Control Messages }
    WM_USER             = $0400;{ Button Notification Codes }const
      {$EXTERNALSYM BN_CLICKED}
      BN_CLICKED       = 0;
      {$EXTERNALSYM BN_PAINT}
      BN_PAINT         = 1;const
      {$EXTERNALSYM EM_GETSEL}
      EM_GETSEL              = $00B0;
      {$EXTERNALSYM EM_SETSEL}
      EM_SETSEL              = $00B1;
      {$EXTERNALSYM EM_GETRECT}
      EM_GETRECT             = $00B2;
      {$EXTERNALSYM EM_SETRECT}
      EM_CANUNDO             = $00C6;
      {$EXTERNALSYM EM_UNDO}
      EM_UNDO                = $00C7;
      {$EXTERNALSYM EM_FMTLINES}
      EM_FMTLINES            = $00C8;
      {$EXTERNALSYM EM_LINEFROMCHAR}
      EM_LINEFROMCHAR        = $00C9;
      {$EXTERNALSYM EM_SETTABSTOPS}
      
      }
      SBM_GETSCROLLINFO = 234;{ Dialog messages }  
    type{ Generic window message record }  PMessage = ^TMessage;
      TMessage = packed record
        Msg: Cardinal;
        case Integer of
          0: (
            WParam: Longint;
            LParam: Longint;
            Result: Longint);
          1: (
            WParamLo: Word;  TWMDestroy = TWMNoParams;
      TWMDestroyClipboard = TWMNoParams;;
      end;  TWMInitMenu = packed record
    d: HWND;
        case Integer of
          0: (
            XPos: Smallint;
            YPos: Smallint);
          1: (
            Pos: TSmallPoint;
            Result: Longint);
      end;implementationend.
        
      

  4.   

    行了,还是回去看看基础知识吧,Messages单元是什么都不知道。要是200分还值得写