線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1431
推到 Plurk!
推到 Facebook!

怎么使用通知消息?

缺席
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-08-05 18:51:37 IP:61.155.xxx.xxx 未訂閱
windows消息有好多种,但是关于通知消息的使用,我却理解不深!    1、获取通知消息 2、定义通知消息 3、通知消息的种类划分 4、发送通知消息    主要是这几个方面的问题。谢谢了!
pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-08-06 09:12:46 IP:210.61.xxx.xxx 未訂閱
>1、获取通知消息 所有可視元件的OnXXXXX事件, 都是用來捕獲對應的 WM_xxxxxx事件訊息 >2、定义通知消息 在宣告區定義如下 procedure DoMyMsg(var Message: TMessage); message MYMSG; 3、通知消息的种类划分 分為作業系統定義的訊息,這類最常見是wm_開頭的,您可以 用關鍵字System-Defined Messages在sdk查查 再來就是應用程式自定義訊息,從wm_user編號開始起跳的 4、发送通知消息 對外PostMessage、SendMessage,對內Perform    以下用一段程式碼做總結 以上希望對您有幫助
const
  MyMsg=WM_USER 1000;
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  public
    procedure DoMyMsg(var Message: TMessage); message MYMSG;
  end;    var
  Form1: TForm1;    implementation    {$R *.DFM}    procedure TForm1.DoMyMsg(var Message: TMessage);
begin
  ShowMessage('domymsg');
end;    procedure TForm1.Button1Click(Sender: TObject);
begin
  Perform(MyMsg,0,0);
end;    end.
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-08-06 11:22:11 IP:61.155.xxx.xxx 未訂閱
pedro 兄:    您将我的题目意思看错了,不过还是谢谢了!< > 我需要关于元件的<>通知消息(<>>)的使用! 请各位能帮助,提点参考也是好的< > 發表人 -
pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-08-07 10:21:19 IP:210.61.xxx.xxx 未訂閱
哦哦.....會錯意了.... http://www.cx66.com/cxgzs/program/delphi/106.htm 元件訊息是什麽?它十分類似Windows的視窗訊息,只有一點不同:元件訊息只適用於 VCL 元件;而視窗訊息可以用在系統內所有具有 window handle 的控制項或視窗。如果你有一個具有 Font 屬性的元件(例如TLabel元件),當我們更改它的 Font 屬性時並沒有送出視窗訊息(譯注:TLabel 元件不是視窗控制項,根本也沒有視窗 Handle可以讓我們傳送視窗訊息),但是控制項仍然知道字型改變了所以要重畫自己,爲什麽?因爲我們有元件訊息。 元件訊息不可以由虛擬方法來處理,這可能是設計 VCL 時的考量,大概是因爲不想讓虛 擬方法表格(Virtual Method Table)過於龐大的原因。 『Secrets of Delphi 2.0』這本書對於所有的元件訊息有十分詳盡的解說。 接下來我們列出一些比較常見的元件訊息及它們的作用。標示著『Notification Only』 的訊息表示送出這個訊息只是爲了通知元件某件消息而己,並不傳入任何參數而且也不需要傳回值。 CM_ACTIVATE (Notification Only) 當表格成爲焦點視窗時會傳給本身這個訊息。 CM_CTL3DCHANGED (Notification Only) 當控制項的Ctl3D屬性更改時會傳給本身這個訊息。 CM_DESIGNHITTEST 參數:TCMDesignHitTest 傳回值:0或1 在設計時期當滑鼠移到元件上頭時,""合環境會送給此元件這個訊息。此訊息的目的用來決定元件在設計時期是否要處理滑鼠訊息。如果傳回值是 1,""合環境就讓元件自行處理滑鼠訊息;若傳回值是 0,則""合環境會幫你處理滑鼠訊息。如果傳回值永遠是 1,那麽元件的快速功能選單則永遠不會出現;如果元件不處理這個訊息或永遠傳回 0,那此元件在設計時期將無法對滑鼠訊息做任何反應。 CM_FONTCHANGED (Notification Only) 控制項的字型改變後送給本身此訊息。 CM_FONTCHANGE (Notification Only) 當控制項收到WM_FONTCHANGE視窗訊息時會送給本身這個訊息。 CM_PARENTCTL3DCHANGED (Notification Only) 當元件父控制項的Ctl3D屬性改變或設定新的父控制項時會收到此訊息。 CM_PARENTCOLORCHANGED (Notification Only) 當元件父控制項的 Color 屬性改變或設定新的父控制項時會收到此訊息。 CM_PARENTFONTCHANGED (Notification Only) 當元件父控制項的Font屬性改變或設定新的父控制項時會收到此訊息。 CM_PARENTSHOWHINTCHANGED (Notification Only) 當元件父控制項的ShowHint屬性改變或設定新的父控制項時會收到此訊息。 CM_WININICHANGE 參數:TWMWinIniChange 傳回值:無 當控制項收到WM_WININICHANGE視窗訊息時會送給本身這個訊息
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-08-07 10:54:33 IP:61.155.xxx.xxx 未訂閱
pedro 兄:    你讲的这些我都懂,就是不知道在实际中怎么用。举个事例帮我解决上面的问题好吗?谢谢< >< > 放了这么久也没有人指导合适的解答< >< >,我想可能要麻烦ccchen版主了 發表人 -
系統時間:2024-05-02 11:46:36
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!