簡體   English   中英

在Delphi或Java中將窗口保持在頂部

[英]Keep window on top in Delphi or Java

在Delphi中是否可以將一個窗口保持在所有其他窗口之上? 例如,當您的應用程序中出現錯誤消息時,假設您希望將窗口保持在頂部,並確保用戶必須單擊某些內容才能執行其他操作。 而且我的意思真的很重要,例如在后台單擊另一個程序。 在Java中呢?

否。Microsoft的Raymond Chen撰寫了一篇很棒的文章,介紹了為什么不在這里 其要旨是,無論您多么努力地將窗口保持在頂部,其他人總是可以走過來做同樣的事情。

過去您可以這樣做。 它被稱為系統模式對話框,並且您使用了已過時的SetSysModalWindow()函數。

它們完全令人討厭,因此當基於Windows NT的Windows版本接管時,它們的感覺和順序得以恢復。

在Delphi中,您可以執行FormStyle:=fsStayOnTop; 這會將您置於所有普通窗口的前面。

但是,如果還有其他設置了樣式的窗口(例如任務欄),則這些窗口可能位於您的前面。 特別是在那些窗口中,具有焦點的窗口具有最高優先級。

您可以嘗試確保窗口始終具有焦點,但這不是一個好主意。 您將招致雷蒙德的恐懼。

您也可以使用分層窗口。 我認為這些是在普通的始終位於頂部的窗戶前面的。 但這具有嚴重的副作用,很可能不是您的正確選擇。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM