如何把窗體顯示在最底層去?(100分)

  • 主题发起人 主题发起人 QSmile
  • 开始时间 开始时间
Q

QSmile

Unregistered / Unconfirmed
GUEST, unregistred user!
如何把窗體顯示在最底層去? <br><br>我的需要: <br>現在我的一個 exe, &nbsp;有一個窗口,一運行就顯示出來,但我不想它顯示在前面。而是只在桌面上面,而在所有其它窗口下面。比如我正在做一個 word. 屏幕顯示為一個 word 的工作界面,而這時我去點快速啟動上的一個軟件按鈕(我的那個 exe)這時我想這個窗口,只顯示在桌面上,而不會擋著我正在使用的 word. &nbsp;<br><br>就像我的那個窗口是桌面的一部分。但又不能用 SetParent 把我的窗口的 parent 設成桌面 <br><br>比如像一些桌面工具就是這樣的。比如: &nbsp; http://www.8-jie.cn/ 八戒桌面側邊欄或魚魚桌面秀或 XPShow 就都可以 <br><br>它們都不是把桌面設成Parent 的。因為在任務管理器中強行把 explorer.exe 結束了,那個窗口它還在。 <br><br>而把 桌面設成 Parent 以後,桌面不見了,窗口也就看不到了。 <br><br>而 Delphi 下的Form 很奇怪,一個 form.show 那窗口就在最前面了 <br><br>如果用API &nbsp;<br>先 &nbsp;ShowWindow &nbsp;用 SW_SHOWNOACTIVE 再用 SetWindowPos 用 HWND_BOTTOM ,窗體可以做到在最後,但問題是窗體上的子控件都不見了,除了 label. 應該是 子控件沒有被初始化,如果是 <br>先用 ShowWindow 再把 frm.visible := true; 再把 &nbsp;SetWindowPos HWND_BOTTOM 這樣的話,窗口會先在前面顯示了,然後再放到後面去。這樣會閃一下,很不爽 <br><br>有沒有辦法讓窗口直接顯示在現有窗體後面,而又能正常工作呢?
 
父窗体指定为桌面,然后,setwindowspos
 
后退
顶部