[PR]

ウィンドウの位置やサイズを保存/復元する

戻る

ウィンドウの状態を保存/復元するには

保存

 ウィンドウが最大化されているかどうかを調べるには関数 IsZoomed() を使う。
 ウィンドウが最小化されているかどうかを調べるには関数 IsIconic() を使う。

復元

 ウィンドウを最大化・最小化するには関数 ShowWindow() を使う。

ウィンドウの位置やサイズを保存/復元するには

保存

 通常状態でのウィンドウの位置とサイズを得るには関数 GetWindowPlacement() を使う。
 構造体 WINDOWPLACEMENT のメンバ rcNormalPosition に通常状態でのウィンドウの位置とサイズが格納される。
 関数 GetWindowPlacement() は関数 GetWindowRect() 等と異なりウィンドウが最大化・最小化された状態でもウィンドウの位置とサイズを得ることができる。

復元

 関数 GetWindowPlacement() で保存したウィンドウの位置とサイズを復元するには関数 SetWindowPlacement() を使う。
 関数 GetWindowPlacement(), SetWindowPlacement() はデスクトップ作業領域座標と呼ばれる特殊な座標系を利用しており、関数 GetWindowPlacement(), SetWindowPlacement() 以外の関数との併用は推奨されない。

ウィンドウを最大化するタイミング

 メッセージ WM_CREATE の処理中にウィンドウを最大化してしまうと通常状態でのウィンドウ位置とウィンドウ・サイズの記憶は失われてしまう。
 そのため、最大化状態で表示されるが通常状態でのウィンドウ位置やウィンドウ・サイズを保存しておきたいならば、初めは不可視状態でウィンドウを作成し、次に通常状態のウィンドウ位置とウィンドウ・サイズを指定し、最後にウィンドウを最大化してからウィンドウを可視状態に変更するという手順が良いと思われる。


Google
ご意見・ご感想をお聞かせ下さい。匿名で送信できます。

 * 返信が必要な場合には postmaster@katsura-kotonoha.sakura.ne.jp へ直接メールしてください。

水無瀬 優 postmaster@katsura-kotonoha.sakura.ne.jp

あなたの作った歌をソフトウェアが人間の声で歌う! これぞ近未来のソフトウェア!
これを流行の一言ですませてはいけない! 技術的にもコンセプト的にも凄い!