關于窗口還原位置的小知識
如果你的窗口最小化了,你想知道這個窗口還原后的位置,可以使用這個API: GetWindowPlacement。這個API會接受一個WINDOWPLACEMENT的結構體指針,并將窗口的位置信息填充到這個結構體中。特別需要注意的是,這個結構體有一個rcNormalPosition參數,它告訴你當窗口從最小化狀態還原時,窗口的目標還原位置。另外,還有一個不是那么顯而易見的標志WPF_RESTORETOMAXIMIZED,這個標志指示窗口當前是最小化狀態,但是如果用戶點擊還原,則它會還原到最大化狀態,而不是還原到它之前的狀態。
可能這看起來有點奇怪,但是實際上你每天都會碰到這種情況。假設我們這樣操作一下:打開一個窗口,然后最大化窗口。這個時候,我們最小化這個窗口。然后點擊任務欄的窗口按鈕來重新打開窗口。請注意,這個窗口將會恢復到它的最大化狀態,而不是它的普通還原狀態。可以想象,如果窗口沒有還原到最大化狀態會顯得很奇怪,因為你不得不需要重新最大化這個窗口。
GetWindowPlacement和SetWindowPlacement這兩個API主要是用在那些希望保存/還原窗口位置信息的程序中。
另外一個需要注意的地方是,GetWindowPlacement和SetWindowPlacement使用的坐標系統不是屏幕坐標系,而是工作區坐標系(workspace coordinates)。如果你弄錯了這個坐標系,導致的結果是:隨著時間的推移,窗口會向上(或向左)傾斜,最終這個窗口自己會卡在任務欄下方。
總結有點慚愧,搞了這么多年的桌面開發,GetWindowPlacement這個API我是一次都沒用過。有空研究研究。
最后Raymond Chen的《The Old New Thing》是我非常喜歡的博客之一,里面有很多關于Windows的小知識,對于廣大Windows平臺開發者來說,確實十分有幫助。本文來自:《Obtaining a window’s size and position while it is minimized》
最近我寫了個東西正如你們所知道的,拓撲梅爾智慧辦公平臺(Topomel Box)是一款綠色軟件,主要面向經常使用電腦的朋友。它提供了各種提升辦公效率的小功能,同時操作上盡可能地簡單方便。我想:你值得擁有。
本文發布于:2023-02-28 21:02:00,感謝您對本站的認可!
本文鏈接:http://m.newhan.cn/zhishi/a/1677718896101230.html
版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。
本文word下載地址:窗口最小化后不見了(窗口最小化后不見了怎么辦).doc
本文 PDF 下載地址:窗口最小化后不見了(窗口最小化后不見了怎么辦).pdf
| 留言與評論(共有 0 條評論) |