GetWindowPlacement x&你的位置

时间:2015-03-10 10:59:45

标签: c++ visual-studio

WINDOWPLACEMENT wp = { };
wp.length = sizeof( WINDOWPLACEMENT );
bool result = GetWindowPlacement( Sess.M_hdl , &wp );
Sess.xPos = wp.ptMinPosition.x;
Sess.yPos = wp.ptMinPosition.y;

我如何处理此功能的POINT结构,目前它为ptMinPosition.x / ptMinPosition.y显示-1并且这是一个错误但是result为1,因此功能成功。

1 个答案:

答案 0 :(得分:1)

-1是函数结果的错误,但作为X或Y纵坐标完全有效。 在结构WINDOWPLACEMENT中,字段ptMinPosition是窗口最小化时的屏幕坐标。对于大多数窗口,最小化的位置在屏幕外,因此(-1,-1)似乎非常合理。

我已经回顾了自己的答案。也许你正试图用错误的字段做错事?

字段showCmd可能会告诉您窗口的当前状态(根据您所做的调用,文档不清楚这是否是输入/输出字段)。大多数人只关心窗口应该可见时的位置(尽管你仍然可以通过编程方式将它放在屏幕上)。

也许您应该查看结构的rcNormalPosition字段? 你可以尝试调用IsIconic()来查明窗口是否被最小化,或者IsZoomed()来查看它是否被最大化。如果它既不是这些,也不是隐藏的,你应该能够从我上面提到的RECT字段中获取当前位置信息。