os 訊息攔截 |
尚未結案
|
epard
一般會員 發表:23 回覆:18 積分:8 註冊:2004-01-09 發送簡訊給我 |
|
seaturn99
版主 發表:69 回覆:427 積分:214 註冊:2003-08-25 發送簡訊給我 |
引言: 您好 一般像 mousedown 或 mousemove 的訊息 可以用 WM_MOUSEMOVE ...攔截到 如果在create 一個 form 時 要用什麼來攔截 或者 在showmessage 時 可以攔截到create window 的message 謝謝epard 您好 : 如果您利用 TForm 產生出來的自製 Dialog 或視窗可以攔截 WM_CREATE message,小範例如下 : (利用 CreateWindow 或 CreateWindowEx API 創造的 Window 也有效) unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Memo1 : TMemo; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } procedure WndProc(var Message: TMessage);override; end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.WndProc(var Message: TMessage); begin case Message.Msg of WM_CREATE : ShowMessage('WM_CREATE'); WM_ACTIVATE : begin memo1.Lines.Add('WM_ACTIVATE'); memo1.Lines.Add('fActive : ' IntToStr(LOWORD(Message.WParam))); memo1.Lines.Add('fMinimized :' IntToStr(HIWORD(Message.WParam))); memo1.Lines.Add('hwndPrevious :' IntToStr(Message.LParam)); end; end; inherited WndProc(Message); end; procedure TForm1.Button1Click(Sender: TObject); var Form2: TForm1; begin try Form2:= TForm1.Create(self); Form2.ShowModal; finally FreeAndNil(Form2); end; end; end.上面紅色的地方是 Dialog 產生時會觸發的一個 Message ,不知道能不能幫到您,也許利用 Dialog 的 Handle 值可以做一些判斷的變化... 暴力法可以參考一下,下面這篇文章 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=45156 ---- 我只會兩件事,這也不會,那也不會 眼見不一定為真 ---- 發表人 - SouthWind 於 2004/07/09 10:55:16 發表人 - SouthWind 於 2004/07/09 10:56:44 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |