怎么使用通知消息? |
缺席
|
sos_admin
版主 發表:121 回覆:697 積分:768 註冊:2003-07-23 發送簡訊給我 |
|
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
>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 發送簡訊給我 |
|
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
哦哦.....會錯意了.... 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 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |