我正在尝试确定应用程序的窗口位置。我知道SetWindowPos()会将窗口位置设置在具有特定大小的特定位置。我想检索这些信息,但我注意到了一些负值。当我将这些值保存到注册表中然后在下一个实例上加载它时,我无法准确地复制大小和位置信息。这首先是最准确的功能吗?
感谢。
答案 0 :(得分:3)
您应该调用GetWindowPlacement方法来获取WINDOWPLACEMENT结构,该结构不仅具有窗口位置,还具有窗口状态(最小化,最大化等)。
反过来,除了位置值之外,您应该将此信息存储在注册表中,并在从注册表中读取值时设置窗口的状态。
答案 1 :(得分:2)
是的,GetWindowRect是你想要的功能。当窗口位于主监视器的上方或左侧时,只能在多个监视器系统上使用负值。
SetWindowPos将设置相对于窗口父窗口的位置,因此您必须在调用之前调整坐标。