MFCでタイトルバーの幅を変更することは可能でしょうか?

[戻る]
イトウ 2010/11/25(木) 14:57:52
MFCでダイアログベースのアプリを作成しています。
少し変な質問かも知れませんが、ウィンド上部のタイトルバー(青い箇所)の幅を変更し
たいのですが、可能でしょうか?
タイトルバーをデフォルトよりも少し太い状態にしたいと思っています。

仲澤@失業者 2010/11/25(木) 17:04:30
ほぼ、不可能と言って良いほど困難です。
どうしてもやりたい場合は、
1.ボーダーの無いクライアント領域のみのウインドウで作成し、
  WM_NCHITTESTに適切に応答する。
2.タイトルとボーダーはWM_NCPAINTなどで自前で描画する。

のようにするのが、もっとも簡単な方法と考えられます。

VS2008などを使用できる場合はリボンコントロールを使用する
方法も考えられます。ただし、DLGでなく通常のウインドウに
なるので、現在のDLGはクライアントに子として貼り付けることに
なると思います。

「太くしたい理由」を提示すれば、もっと優れた回答がもらえるかもしれません。

イトウ 2010/11/25(木) 18:39:41
返信ありがとうございます。

理由は単純で、タイトルバーをドラッグ時のウィンド移動や、ダブルクリック時の最大
化の範囲を増やしたかっただけです。
ダイアログの上にイメージを貼り付けて、スキンぽくしています。
それに伴い、上記の範囲を増やしたかっただけです。

ご指摘の通り難しそうなので、左クイック時のイベントを拾ってきて、座標判定後に上
記の処理を行うように作りました。

仲澤@失業者 2010/11/26(金) 20:58:28
であれば、先の発言通り、タイトルバーとして振舞わせたい
クライアント領域内にマウスカーソルがあるとき、
WM_NCHITTESTに応答して、HTCAPTION(=タイトル バー領域内にあります)
を戻すだけで、できそうなんですけど(vv;)。
だめでしょうか。

古いスレッドには追加発言できません。