如何记住监视器应用程序位于? 我正在编写一个C++ MFC应用程序,我想记住它的位置。它应该在关闭窗口之前准确地打开窗口。打开一个窗口时,我会从文件中读取数据,或者注册并恢复关闭窗口时的桌面、左顶点的坐标和窗口大小

如何记住监视器应用程序位于? 我正在编写一个C++ MFC应用程序,我想记住它的位置。它应该在关闭窗口之前准确地打开窗口。打开一个窗口时,我会从文件中读取数据,或者注册并恢复关闭窗口时的桌面、左顶点的坐标和窗口大小,c++,windows,winapi,mfc,monitors,C++,Windows,Winapi,Mfc,Monitors,坐标和大小没有问题,但是跟踪我有一个窗口的显示的最佳方法是什么 显示的数量将不起作用,因为无法通过数字和WinAPI中的监视器数量获取监视器 根据msdn,HMONITOR值可能合适:物理显示器具有相同的HMONITOR,只要它是桌面的一部分。但是如果我重新启动电脑,我保存的监视值会保持一致吗?您可以在应用程序关闭时调用以获取窗口的大小和位置,包括窗口是否已最大化、是否已还原等。。将此信息保存在注册表、应用程序数据等的某个位置,并在下次程序启动时读入此信息并调用以将窗口恢复到以前的位置 此外,您

坐标和大小没有问题,但是跟踪我有一个窗口的显示的最佳方法是什么

显示的数量将不起作用,因为无法通过数字和WinAPI中的监视器数量获取监视器

根据msdn,HMONITOR值可能合适:物理显示器具有相同的HMONITOR,只要它是桌面的一部分。但是如果我重新启动电脑,我保存的监视值会保持一致吗?

您可以在应用程序关闭时调用以获取窗口的大小和位置,包括窗口是否已最大化、是否已还原等。。将此信息保存在注册表、应用程序数据等的某个位置,并在下次程序启动时读入此信息并调用以将窗口恢复到以前的位置

此外,您可能需要验证窗口的新位置是否可见,如果不可见,则需要移动窗口以使其再次可见。如果设置了不同数量的监视器,例如您没有在笔记本电脑上使用外部显示器,则可能会发生这种情况。

您可以在应用程序关闭时调用,以获取窗口的大小和位置,包括窗口是否最大化、恢复等。。将此信息保存在注册表、应用程序数据等的某个位置,并在下次程序启动时读入此信息并调用以将窗口恢复到以前的位置


此外,您可能需要验证窗口的新位置是否可见,如果不可见,则需要移动窗口以使其再次可见。如果设置了不同数量的监视器,例如您没有将外部显示器与笔记本电脑一起使用,则可能会发生这种情况。

手柄H in HMONITOR代表的手柄是特定于过程的。如果您连续运行两次程序,您将有两个不同的进程,每个进程都有自己独特的句柄。因此,不能保存HMONITOR变量并将其加载到另一个进程中。您需要找到一种方法来获取HMONITOR所表示的实际屏幕。坐标标识monitor@Someprogrammerdude,感谢您提供的信息,我不知道:如果您使用的是MFC,最新版本的框架将自动支持所需的功能。只需使用CWinAppEx::EnableLoadWindowPlacementHandles HMONITOR中的H代表句柄,它是特定于进程的。如果您连续运行两次程序,您将有两个不同的进程,每个进程都有自己独特的句柄。因此,不能保存HMONITOR变量并将其加载到另一个进程中。您需要找到一种方法来获取HMONITOR所表示的实际屏幕。坐标标识monitor@Someprogrammerdude,感谢您提供的信息,我不知道:如果您使用的是MFC,最新版本的框架将自动支持所需的功能。只需使用CWinAppEx::enableLoadWindowPlacement谢谢你,Andy,你的回答很有帮助!。。。除了你搞错了方向外:@Roger-oops,你是对的!我会解决的。谢谢你指出这一点。谢谢你,安迪,你的回答帮助了我!。。。除了你搞错了方向外:@Roger-oops,你是对的!我会解决的。谢谢你指出这一点。