創建Photoshop式浮動視窗應用程式 |
|
h@visli
資深會員 發表:103 回覆:429 積分:431 註冊:2004-02-13 發送簡訊給我 |
創建Photoshop式浮動視窗應用程式 (文章被人四處盜用,所以乾脆貼到這裏來)
用過Photoshop的朋友一定對它的那些方便的浮動面板記憶猶新,其實這些面板就是一個個的小表單,但這些小表單都放在Photoshop的主表單上(不是存在主表單中),有自己的標題欄、最小化按鈕及最大化按鈕。但它們與MDI程式不同的是,他們可以拖到主表單外,更重要的是工作中所有這些面板表單與主表單最處於啟動狀態。 用Spy & Capture查看一下就不難發現,這些面板表單的Parent Window都是Photoshop的主表單(以Photoshop CS為例,主表單的Handle是001906D8,所有面板的Parent Window指向的就是001906D8),而一般我們創建的表單的Parent是為None的。 下面的代碼就為實現這種Photoshop式浮動視窗的示範:
//...... var Form1: TForm1; implementation uses Unit2; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin //把Form2的Parent改為Form1 Form2 := TForm2.CreateParented(Form1.Handle); Form2.Show; //使得Form2處於啟動狀態 SendMessage(Form2.Handle, WM_NCACTIVATE, Ord(True), 0); end; procedure TForm1.Button2Click(Sender: TObject); begin Form2.Close; end; procedure TForm1.FormDestroy(Sender: TObject); begin //記得加上這一句 if Form2.Showing then Form2.Close; end; end.上面的代碼就可以顯示一個與Form1同處啟動狀態的Form2,再對Form2的BorderStyle與BorderIcons屬性作一些必要的選擇,就可以實現更加完美的效果! 發表人 - h@visli 於 2005/06/13 11:06:59
------
------------------------ 博采眾家之長,奉獻綿薄之力 ------------------------ |
homanfai
一般會員 發表:6 回覆:8 積分:2 註冊:2005-12-04 發送簡訊給我 |
|
baby2321
初階會員 發表:52 回覆:165 積分:48 註冊:2005-06-11 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |