如何使一個視窗永遠是Active(OnFocused) |
尚未結案
|
liaoken
一般會員 發表:2 回覆:2 積分:0 註冊:2004-02-06 發送簡訊給我 |
|
kwu
中階會員 發表:10 回覆:57 積分:58 註冊:2003-10-31 發送簡訊給我 |
引言: 請問各位先進: 我想讓一個視窗永遠是顯示在最上層(TOP),而且不會失去焦點(就是永遠都是active window) 目前我用了SetWindowPos函數可以讓視窗在最上層顯示,但是當我按到其他視窗時,焦點會轉到他視窗上面,而不是在最TOP的那個視窗, 請問該如何做才能讓焦點不會離開呢??? 謝謝先了~~~^-^liaoken你好: 試試看用 ShowModal() void __fastcall TForm1::Button1Click(TObject *Sender) { Form2->ShowModal(); } |
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 請問各位先進: 我想讓一個視窗永遠是顯示在最上層(TOP),而且不會失去焦點(就是永遠都是active window) 目前我用了SetWindowPos函數可以讓視窗在最上層顯示,但是當我按到其他視窗時,焦點會轉到他視窗上面,而不是在最TOP的那個視窗, 請問該如何做才能讓焦點不會離開呢??? 謝謝先了~~~^-^liaoken 你好: 請參考以下的連結文章 src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=10003806&CC=223734"> -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
liaoken
一般會員 發表:2 回覆:2 積分:0 註冊:2004-02-06 發送簡訊給我 |
|
m8815010
版主 發表:99 回覆:372 積分:289 註冊:2003-11-13 發送簡訊給我 |
引言: 先感謝兩位大大的回應~ 我試過了用Timer的方法,確實可以讓我的視窗定時被Active 但是還是可以去點選其他的視窗~ 我是想讓程式一執行後,出現的那個Form永遠是Active~ 而且你無法點選其他視窗 有辦法不用Timer也可以做到嗎???liaoken你好: 我覺得不用>>物件及其 class="code"> void __fastcall TForm1::ApplicationEvents1Deactivate(TObject *Sender) { Sleep(100); SetForegroundWindow(Application->Handle); <---這行在Win 2k中很有問題,見下面說明 SetActiveWindow(Application->Handle); } 上面那行SetForegroundWindow有一個問題,如Win API說明: 也就是說如果一隻Ap自已用這個API function讓自已在最上層,則會在tool bar持續閃爍,且沒辦法getfocus,如下圖: 於是我用Sleep(100);這行解決掉了,在Win XP試run成功,但後來在Win 2k中卻怎麼也不能成功,這點值得注意! ========================================================================================== After all,以上都是昨天的想法!今天覺得不太好,因為都是把 >! 這樣的做法第一個會感覺 >----&>今天試了一下做這樣的一個>遺憾的是目前我還不會做>< >,所以也順便問了一個問題< >!> >! |
conundrum
尊榮會員 發表:893 回覆:1272 積分:643 註冊:2004-01-06 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |