- ベストアンサー
メニューが2行に折り返されないようウィンドウ幅を調整したい
システム設定などによらず、メニューが2行に折り返されないぎりぎりの幅に調整したいのです。 ::GetMenuBarInfo を使うと表示中のメニューバーのサイズが取れるようなので、現在二行かどうかはわかりそうですが、どのくらいの幅にリサイズすれば良いのかわかりません。 何か良いAPIはありませんでしょうか。教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
MFCでの開発に限られてしまうかもしれませんけど、 (無理やりafx.hをインクルードしてゴリ押しもありかも) CSize GetTextExtent( const CString& str ) const; を使うと、DCで現在選択しているフォントにおける 指定した文字列の幅と高さがわかります。 参考になれば幸いです。
その他の回答 (1)
- hope10
- ベストアンサー率48% (17/35)
回答No.1
適切なAPIは無いと思います。 メニューがやっている事と同じように自前で描画してみて幅を計算すれば良いのでは... メニューがどんな描画関数を使っているか判りませんが、DrawText等でも同じように計算できるのではないでしょうか? ただ、汎用的にするには ・最大化したとしても1行に収まらない場合... ・ブレークは常に無視するのか? ・MDIの場合、最大化状態か否かで変わる。 等、色々条件で変わる点を考慮しなければダメですね。
質問者
お礼
色々考えなくてはいけないことが多いんですね。 ありがとうございました。
お礼
試してみます。ありがとうございます。