全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2694
推到 Plurk!
推到 Facebook!

請問如何讓"某一程式"保持在最上層,而非某一視窗?

尚未結案
tommyli0913
一般會員


發表:9
回覆:19
積分:5
註冊:2004-02-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-05-01 15:01:47 IP:211.76.xxx.xxx 未訂閱
各位先進大大,小弟想請教一個程式順序的問題,我有兩個程式(令為A程式及B程式),A程式有三個可執行視窗,B程式有五個可執行視窗,我想將A程式永遠保持在B程式的上面。而當B程式被其他程式覆蓋時候,A程式也要一起被覆蓋,這要如何做到呢? 我在API的程式中,只看到SetWindowPos(hw, HWND_TOPMOST, 0, 0, 0, 0, 3);是可以將"某一視窗"保持在最上層,但卻不知道要如何將"某一程式"保持在最上層"???
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-05-01 18:45:03 IP:203.204.xxx.xxx 未訂閱
tommyli0913 你好     每支程式總有一個主Form,可以利用FindWindow(...)找到該Form的Handle,然後將它設為最上層。
jest0024
高階會員


發表:11
回覆:310
積分:224
註冊:2002-11-24

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-05-01 19:09:15 IP:211.74.xxx.xxx 未訂閱
引言: tommyli0913 你好 每支程式總有一個主Form,可以利用FindWindow(...)找到該Form的Handle,然後將它設為最上層。
當VCL建立時,會依造Parant為上層元件建立,但如果不是使用VCL時就能使用 WndParent屬性來指定他上層元件。 例如:以Delphi Help來當上層元件的話 type TForm1 = class(TForm) private { Private declarations } public procedure CreateParams(var Params: TCreateParams);override; end; procedure TForm1.CreateParams(var Params: TCreateParams); var dc:THandle; begin inherited; dc:=FindWindow(nil,'Delphi Help'); Params.WndParent:=dc; end; //這樣這支程式會顯示在Delphi Help上層,相對的Delphi Help被其他程式複 //蓋過後,這支程式一樣被複蓋過企 想買台TPC..TTAB-B12D
nnn0918k
一般會員


發表:12
回覆:33
積分:14
註冊:2003-05-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-05-01 20:08:19 IP:61.216.xxx.xxx 未訂閱
首先,視窗A1可控制視窗A1~3 而視窗B1可控制B1~5 A程式用SendMessage叫B程式排列視窗B1~5 然後B程式再SendMessage叫A程式排列視窗A1~3 其他的得你自己研究囉 火舞精靈 - 蘇
tommyli0913
一般會員


發表:9
回覆:19
積分:5
註冊:2004-02-02

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-05-02 16:41:51 IP:211.76.xxx.xxx 未訂閱
謝謝各位先進的幫忙,jest0024大大您的方法我有試出來了,可以用,也是我想要的,真是太感謝了!
系統時間:2024-05-17 20:07:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!