我有一个 Windows 应用程序,每当用户调整窗口大小或移动它时,我都想保存窗口坐标,除非这些事件是由于窗口最小化而引起的(此时坐标没有意义)。我的问题是,当窗口最小化时,消息 WM_MOVE 先于 WM_SIZE 出现,而我只能在 WM_SIZE 情况下检测最小化(使用测试 wParam == SIZE_MINIMIZED)。现在我注意到,在最小化的情况下,GetWindowRect 给出的 xy 坐标取值为 -32000,因此我可以对此进行测试,但这些值在不同系统之间可靠吗?有没有更好的方法?
谢谢你!
SetWindowPlacement
/GetWindowPlacement
是恢复/保存窗口位置的最佳方法。如果您确实不想记住最小化状态,如果
WINDOWPLACEMENT::showCmd
是,请在调用之前SW_SHOWMINIMIZED
将其更改为。SW_SHOW
SetWindowPlacement