我正在编写一个 C++ mfc 应用程序,我想记住它的位置。它应该在关闭窗口之前准确地打开它的窗口。在打开一个窗口时,我会从文件或寄存器中读取数据,并恢复它关闭时的窗口桌面、左顶点的坐标和窗口大小。
坐标和大小没有问题,但是跟踪我有一个窗口的显示器的最佳方法是什么?
Number of display 是不行的,因为在WinAPI 中没有办法通过number 和monitor 的编号获取监视器。
HMONITOR 值可能适合,根据 msdn:“只要物理显示器是桌面的一部分,它就具有相同的 HMONITOR。” (https://msdn.microsoft.com/en-us/library/dd144968(v=vs.85).aspx)。但是,如果我重新启动 PC,我保存的 HMONITOR 值是否会保持一致?
最佳答案
您可以调用GetWindowPlacement()当您的应用程序关闭以获取窗口的大小和位置时(包括它是否最大化、恢复等)。将此信息保存在某处(注册表、应用程序数据等),下次程序启动时读取此信息并调用 SetWindowPlacement()将窗口恢复到之前的位置。
此外,您可能想要验证窗口的新位置是否可见,如果不可见则移动它以使其再次可见。如果设置了不同数量的显示器(例如,如果您没有在笔记本电脑上使用外接显示器),就会发生这种情况。
关于c++ - 如何记住监控应用程序所在的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40240256/