OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

タイトルバーやメニューバーの高さ取得

  • 困ってます
  • 質問No.161867
  • 閲覧数1878
  • ありがとう数4
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 83% (55/66)

サイズ変更可能なダイアログボックスアプリケーションを作っています

ダイアログサイズ変更時に
GetClientRect( m_DlgSize );
のようにしてサイズを取得し、設定ファイルにm_DlgSizeを保存します

次回起動時にInitDialog()で
SetWindowPos( NULL, 0, 0, m_DlgSize.Width(),m_DlgSize.Height() ,SWP_NOMOVE);
のように復元しました。
幅はきちんと復元できたんですけど高さが小さくなってしまいます。
どうやらGetClientRectではメニューバーやタイトルバーの高さを含めない座標を返し、
SetWindowPosではそれらも含めてサイズを設定してしまうようです
この差を埋めるためにメニューバーやタイトルバーの高さを取得する方法がわかりません。
何か良い方法があったらご教授願います。
環境はVC++6.0 MFCです。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル7

ベストアンサー率 72% (8/11)

dannerです。

>> WINDOWPLACEMENTは最大化とか最小化には対応できそうですが、ウィンドウの角を引っ張っての微妙なサイズ変更を保存することができないですよね??(本当か?)。
保存できますよ。

やり方としては
保存:
 GetWindowPlacementしてWINDOWPLACEMENTのメンバ変数をすべて保存
復元:
 保存したファイルからWINDOWPLACEMENTのメンバ変数に設定
 SetWindowPlacementを実行
 ShowWindow(wndplace.showCmd);を実行 ←いらないかも

こんな感じでできると思うのですが?
お礼コメント
ystk

お礼率 83% (55/66)

たびたびどうもすみませんです。
GetWindowPlacementで出来ました。
rcNormalPosition変数に保存されてたんですね;;
よく考えたらそんな中途半端な関数作らないですよね。

完全に独学でやっているので知識不足や思い込みで
簡単なことにするのに何時間もかかってしまったりします。
あげく訳のわからんコードを書いて自己満足してたりして・・

ほんとにネットだけが頼りです(寂しいな)
おかげさまで簡単に保存することが出来ました
投稿日時 - 2001-11-03 12:07:58
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル7

ベストアンサー率 72% (8/11)

メニューバーやタイトルバーの高さは GetSystemMetricsで取得することはできますよ。 ただ、ウィンドウサイズの保存・復元は ウィンドウを閉じるときに保存したほうがいいと思います。 あとサイズの保存・復元は、 GetWindowPlacementとSetWindowPlacementを使用すれば メニューバーとかのサイズを気にしなくてすみます。 ...続きを読む
メニューバーやタイトルバーの高さは
GetSystemMetricsで取得することはできますよ。

ただ、ウィンドウサイズの保存・復元は
ウィンドウを閉じるときに保存したほうがいいと思います。
あとサイズの保存・復元は、
GetWindowPlacementとSetWindowPlacementを使用すれば
メニューバーとかのサイズを気にしなくてすみます。
補足コメント
ystk

お礼率 83% (55/66)

GetWindowPlacementの存在には気づいてはいたんですが
WINDOWPLACEMENTは最大化とか最小化には対応できそうですが、ウィンドウの角を引っ張っての微妙なサイズ変更を保存することができないですよね??(本当か?)。
説明不足で申し訳ありませんです。
とりあえずGetSystemMetrics()で挑戦してみます。
これは知りませんでした(でもすごく重要そうな関数ですね・・)
あと保存は閉じるときにします。
Windowsプログラミングはいくらやっても判らないことだらけで・・

うまくいったら報告致します。
また、なんか勘違いしてたら突っ込んでください。
どうもありがとうございました。
投稿日時 - 2001-11-03 00:18:49
お礼コメント
ystk

お礼率 83% (55/66)

GetWindowPlacementで解決できました。
ありがとうございました。
投稿日時 - 2001-11-03 12:11:01


このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ