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

如何讓表單永遠在最下層(包含拖曳)

答題得分者是:jest0024
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-13 15:18:31 IP:220.139.xxx.xxx 未訂閱
我們在建立表單時可以設定 fsStayOnTop 或由 API SetWindowPos 的 HWND_TOPMOST 將表單變成最上層顯示,但是要如何作到最下層呢?    我有試過在移動表單的同時將視窗以 SetWindowPos 的 HWND_BOTTOM 設為 onBottom,但在移動時,表單還是會跑到上層,在移完後,再變到下層?    可是有一些軟體(如桌面月曆)可以在移動時也維持在最下層,How?    沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com
m8815010
版主


發表:99
回覆:372
積分:289
註冊:2003-11-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-14 22:27:24 IP:218.173.xxx.xxx 未訂閱
dllee兄你好:               看了你的題目我感覺Windows應該在SetWindowPos這個API function中有一個對應HWND_TOPMOST的屬性,可能可以叫HWND_BOTTOMMOST,這樣才比較friendly才對< >! 針對>狂拳打死老師父的方法(老一輩武俠小說中常見的名句)< >! 測試鎖死扣: < class="code">in Unit.h ~~ private: // User declarations void __fastcall FormWndProc(TMessage&); TWndMethod OrgFormWndProc; ~~ in Unit.cpp //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { OrgFormWndProc=Form1->WindowProc; Form1->WindowProc=FormWndProc; } //--------------------------------------------------------------------------- void __fastcall TForm1::FormWndProc(TMessage& Msg) { if (Msg.Msg==WM_SETFOCUS || Msg.Msg==WM_MOVING || Msg.Msg==WM_PAINT) { <---目前這3個應該夠用了! SetWindowPos(Form1->Handle,HWND_BOTTOM,Form1->Left,Form1->Top,Form1->Width,Form1->Height,SWP_NOOWNERZORDER); Form1->Caption=i; i ; } OrgFormWndProc(Msg); //--------------------------------------------------------------------------- 目前上述還測試ok,不曉得有沒有其它的方法! 發表人 -
conundrum
尊榮會員


發表:893
回覆:1272
積分:643
註冊:2004-01-06

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-15 15:18:13 IP:61.221.xxx.xxx 未訂閱
http://delphi.ktop.com.tw/topic.php?topic_id=39531 http://delphi.ktop.com.tw/topic.php?topic_id=19817 http://delphi.ktop.com.tw/topic.php?topic_id=20644 http://delphi.ktop.com.tw/topic.php?topic_id=25818 http://delphi.ktop.com.tw/topic.php?topic_id=26443 http://delphi.ktop.com.tw/topic.php?topic_id=28089 此未有正確答案 http://delphi.ktop.com.tw/topic.php?topic_id=30728 http://delphi.ktop.com.tw/topic.php?topic_id=40588 http://delphi.ktop.com.tw/topic.php?topic_id=35940 http://delphi.ktop.com.tw/topic.php?topic_id=40598 http://delphi.ktop.com.tw/topic.php?topic_id=41322 http://delphi.ktop.com.tw/topic.php?topic_id=44021 http://delphi.ktop.com.tw/topic.php?topic_id=44654 //額外這只是應用部份 【BCB】【轉貼】桌面繪畫 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=41140 http://www.ne.jp/asahi/nagoya/ahomaro/builder/ 【轉貼】TidyDesktopOne http://delphi.ktop.com.tw/topic.php?TOPIC_ID=44918 簡單一點 想辦法 把他 釘起來 跑不到移不走永遠最前 可以作假貼於桌面 啟用時 使用隱藏表單 又把它釘在貼再桌面的假圖 由於 不太懂所以亂哈哈啦 哈啦蒙主 發表人 - conundrum 於 2004/02/15 16:11:48
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-02-17 14:27:04 IP:220.139.xxx.xxx 未訂閱
感謝 conundrum 提供那麼多與表單相關的文章...    不過,還是 m8815010 提供的方法比較好用  目前還有一點小小的缺陷,在移完後,放開滑鼠的瞬間,會有很明顯的閃動(跑到前景又立刻回到背景),如果還有其他的 >沒空更新的網頁... href="http://dllee.adsldns.org">http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com
m8815010
版主


發表:99
回覆:372
積分:289
註冊:2003-11-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-02-18 13:25:12 IP:61.63.xxx.xxx 未訂閱
引言: 目前還有一點小小的缺陷,在移完後,放開滑鼠的瞬間,會有很明顯的閃動(跑到前景又立刻回到背景),如果還有其他的 Message 需要攔,請再分享一下...
dllee兄你好: 這個問題我try到了,是有,不過我的PC上不好試出來,大概拖放個5、6次才有一次這種情形! 感覺有點像我之前做>我們有攔到它跑上來,再把它設下去,只是這步驟有時會慢到肉眼都看的出! 目前尚沒有決解掉這情形< >,先回應是說我有空會持續對應這有趣的題目< >! <>又試出需要加攔的> < class="code"> if (Msg.Msg==WM_NCHITTEST) SetWindowPos(Form1->Handle,HWND_BOTTOM,Form1->Left,Form1->Top,Form1->Width,Form1->Height,SWP_NOOWNERZORDER); if (Msg.Msg==WM_SIZE) SetWindowPos(Form1->Handle,HWND_BOTTOM,Form1->Left,Form1->Top,Form1->Width,Form1->Height,SWP_NOOWNERZORDER); 這兩個比較難試出何時需要用到,賣個關子!
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-02-18 19:59:11 IP:211.76.xxx.xxx 未訂閱
引言: 這個問題我try到了,是有,不過我的PC上不好試出來,大概拖放個5、6次才有一次這種情形! < face="Verdana, Arial, Helvetica"> 可能是我用筆記型電腦,顯示卡比較差的關係... 幾乎是每次都會 <>< face="Verdana, Arial, Helvetica">引言: 感覺有點像我之前做repaint時會有閃爍的問題的那種味道!不過快速的由前景跑到背景正表示我們有攔到它跑上來,再把它設下去,只是這步驟有時會慢到肉眼都看的出! 目前尚沒有決解掉這情形< >,先回應是說我有空會持續對應這有趣的題目< >!
感謝您的繼續測試 <>< face="Verdana, Arial, Helvetica">引言: 又試出需要加攔的message
 if (Msg.Msg==WM_NCHITTEST)
     SetWindowPos(Form1->Handle,HWND_BOTTOM,Form1->Left,Form1->Top,Form1->Width,Form1->Height,SWP_NOOWNERZORDER);     if (Msg.Msg==WM_SIZE)
     SetWindowPos(Form1->Handle,HWND_BOTTOM,Form1->Left,Form1->Top,Form1->Width,Form1->Height,SWP_NOOWNERZORDER);
這兩個比較難試出何時需要用到,賣個關子! < face="Verdana, Arial, Helvetica"> 會再試試以上及其他的 Message... 再次感謝 <>沒空更新的網頁... href="http://dllee.adsldns.org">http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com
jest0024
高階會員


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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-05-06 12:02:20 IP:211.74.xxx.xxx 未訂閱
好久以前的問題捏,不過嘛來回答一下我的做法。
procedure TForm1.Create;
var 
  dc:THandle;
begin
  dc:=GetWindow(GetWindow(FindWindow('Progman',nil),GW_CHILD),GW_CHILD);
  Windows.SetParent(Handle,dc);
end;
學而時習之不亦樂乎!
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-05-07 13:31:44 IP:220.139.xxx.xxx 未訂閱
引言: 好久以前的問題捏,不過嘛來回答一下我的做法。
procedure TForm1.Create;
var 
  dc:THandle;
begin
  dc:=GetWindow(GetWindow(FindWindow('Progman',nil),GW_CHILD),GW_CHILD);
  Windows.SetParent(Handle,dc);
end;
學而時習之不亦樂乎!
高手!高手! 佩服!佩服! 實在是太強了 您的方法真的簡單又好用! <>沒空更新的網頁... href="http://dllee.adsldns.org">http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com
h5rong
一般會員


發表:32
回覆:44
積分:15
註冊:2003-08-27

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-07-29 22:17:40 IP:61.221.xxx.xxx 未訂閱
引言: 好久以前的問題捏,不過嘛來回答一下我的做法。
procedure TForm1.Create;
var 
  dc:THandle;
begin
  dc:=GetWindow(GetWindow(FindWindow('Progman',nil),GW_CHILD),GW_CHILD);
  Windows.SetParent(Handle,dc);
end;
按照上述指令,當載入 mainform(此 mainform 有1024*768背景圖),整個 OS 螢幕畫面,整個反黑,當遠端用 遙控軟體連上該電腦時,一切又正常,此遙控軟體一離線時,整個螢幕畫面又反黑,曾經將 Active DeskTop--Web--顯示 web 內容拿掉,但還是一樣,不曉得有人遇到過否? 謝謝 !!
系統時間:2024-05-03 19:18:28
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!