搜索
写经验 领红包
 > 生活

窗口小化后获取窗口的大小和位置信息(窗口小化后获取窗口的大小和位置是什么)

导语:窗口最小化后获取窗口的大小和位置

关于窗口还原位置的小知识

如果你的窗口最小化了,你想知道这个窗口还原后的位置,可以使用这个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)是一款绿色软件,主要面向经常使用电脑的朋友。它提供了各种提升办公效率的小功能,同时操作上尽可能地简单方便。我想:你值得拥有。

免责声明:本站部份内容由优秀作者和原创用户编辑投稿,本站仅提供存储服务,不拥有所有权,不承担法律责任。若涉嫌侵权/违法的,请反馈,一经查实立刻删除内容。本文内容由快快网络小璎创作整理编辑!