相当简单的问题:如何告诉VB6应用程序记住它关闭的显示器,然后再次启动应用程序时,在该监视器上显示主窗体?
答案 0 :(得分:3)
为什么不在退出前保存窗口的位置和大小,然后在启动时恢复?你需要通过显示器定位吗?
答案 1 :(得分:3)
您无需“了解”所有显示器。在这种情况下,您只需multi-monitor agnostic。
为了这个例子,假设你有一个两个监视器设置,辅助设备左边的主设备,两个监视器的分辨率都是1024x768。
不要将您的应用视为在多显示器环境中运行,而应将其视为在单个桌面上运行的应用程序,即2048x768。
在这种情况下,您需要做的就是确定桌面上的位置,Windows负责其余部分。您无需担心它所在的监视器:如果您将窗口设置为显示在框(0,0) - (1023,767)内,则它将显示在主要监视器上。如果合作伙伴在框(1024,0) - (2047,767)内,则它出现在辅助监视器上。
这只是要求Windows告诉您应用程序窗口的大小和位置的情况。为此,您需要查看GetWindowRect()和SetWindowPos()。有一个如何使用GetWindowRect()behind this link的例子。 (VB可能有一种原生的方式来获得这个而不需要使用Win32 API,但我没有在我面前使用VB6进行测试)。