2012-02-24 13 views
1

ウィンドウをデスクトップに復元する場合に表示されるビットマップを生成しようとしています。 GetWindowRectはサイズを最小にし、GetWindowplacementは返す場所を返します。しかし、私はそれがどれくらいの大きさであるかを教えてくれるAPIを見つけることはできません。windowsの復元サイズの決定

復元した場合のウィンドウの大きさはどのように決定しますか?

+2

'WINDOWPLACEMENT :: rcNormalPosition'はあなたのために機能しませんか? –

答えて

4

GetWindowPlacement本当に必要なものです。 rcNormalPositionは、正規化された位置の座標を含むRECTです。または、WPF_RESTORETOMAXIMIZEDがウィンドウ配置flagsにある場合は、ウィンドウが関連付けられているモニターの作業領域を使用します。

GetWindowPlacementは、Windows 7のrcNormalPositionに誤った情報を返すことがあります。これは、ハーフスクリーンのAeroスナップ機能を使用したときに発生しました。あなたがそれをした後、質問をするときにウィンドウがまだ正規化されていれば、rcNormalPositionに戻り、RECTはAeroスナップ位置と一致しません。ウィンドウが正規化されている場合は、単にGetWindowRectを使用して対処してください。

4

GetWindowPlacementは、ウィンドウの大きさを正確に示します。 rcNormalPositionフィールドはRECTです。高さと幅を取得し、下から上を引いて、右から左に引いてください。

注矩形ワークスペースにある約MSDNのコメント座標は、スクリーン座標ではない:

ワークスペース座標が画面異なる彼らはに(タスクバーを含む)アプリケーションツールバーの位置とサイズをとることで座標アカウント。作業領域座標(0,0)は作業領域領域の左上隅で、アプリケーションツールバーで使用されていない領域です。

関連する問題