关于窗口还原位置的小知识
如果你的窗口最小化了,你想知道这个窗口还原后的位置,可以使用这个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,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/zhishi/a/1677718896101230.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:窗口最小化后不见了(窗口最小化后不见了怎么办).doc
本文 PDF 下载地址:窗口最小化后不见了(窗口最小化后不见了怎么办).pdf
留言与评论(共有 0 条评论) |