• ベストアンサー

メニューが2行に折り返されないようウィンドウ幅を調整したい

システム設定などによらず、メニューが2行に折り返されないぎりぎりの幅に調整したいのです。 ::GetMenuBarInfo を使うと表示中のメニューバーのサイズが取れるようなので、現在二行かどうかはわかりそうですが、どのくらいの幅にリサイズすれば良いのかわかりません。 何か良いAPIはありませんでしょうか。教えてください。

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

  • ベストアンサー
  • Soli
  • ベストアンサー率11% (7/61)
回答No.2

MFCでの開発に限られてしまうかもしれませんけど、 (無理やりafx.hをインクルードしてゴリ押しもありかも) CSize GetTextExtent( const CString& str ) const; を使うと、DCで現在選択しているフォントにおける 指定した文字列の幅と高さがわかります。 参考になれば幸いです。

twk
質問者

お礼

試してみます。ありがとうございます。

その他の回答 (1)

  • hope10
  • ベストアンサー率48% (17/35)
回答No.1

適切なAPIは無いと思います。 メニューがやっている事と同じように自前で描画してみて幅を計算すれば良いのでは... メニューがどんな描画関数を使っているか判りませんが、DrawText等でも同じように計算できるのではないでしょうか? ただ、汎用的にするには ・最大化したとしても1行に収まらない場合... ・ブレークは常に無視するのか? ・MDIの場合、最大化状態か否かで変わる。 等、色々条件で変わる点を考慮しなければダメですね。

twk
質問者

お礼

色々考えなくてはいけないことが多いんですね。 ありがとうございました。

関連するQ&A