如何检测窗口由Windows7调整大小

whu*_*nmr 5 .net windows-7

[题]

1.如何检测窗口(WPF)由Aero Snap调整大小?然后我可以忽略新的大小和位置.

感谢您的回答和评论.

Joh*_*ler 4

退出时,调用GetWindowPlacement。这将返回当前的窗口大小和位置,无论您是最小化、最大化还是恢复,它还会为您提供最新的“恢复”窗口大小和位置。

因此,您不必跟踪窗口位置的更改,只需在需要时询问即可。

typedef struct _WINDOWPLACEMENT {
    UINT length;
    UINT flags;
    UINT showCmd;
    POINT ptMinPosition;
    POINT ptMaxPosition;
    RECT rcNormalPosition;
} WINDOWPLACEMENT;
Run Code Online (Sandbox Code Playgroud)

  • @Oliver:P/Invoking 没有任何问题。.NET Framework 提供该功能是有原因的:这样您就可以执行它尚未提供托管实现的操作。这里的简短答案是,*没有*可以执行此操作的托管实现,因此 P/Invoking 是您唯一的选择。 (2认同)