フレーム以外でのダイアログバー表示

解決


Kiritsu  2004-12-06 22:08:22  No: 55493  IP: [192.*.*.*]

すいません。質問です。
フレームウィンドウ以外にダイアログバーを付ける事って可能でしょうか?
実際にはCListViewにダイアログバーを付けたいと考えています。
MSDNにはコントロールバーは、フレームウインドウにのみ作成可能とあります。
MFCを使用していますが、良いアドバイスがあれば、お願い致します。

編集    削除
みい  2004-12-07 02:25:23  No: 55494  IP: [192.*.*.*]

ええっと、MDIの画面でメインフレームではなくチャイルドフレーム上に
ダイアログバーを付けたいという意味でしょうか?

編集    削除
Kiritsu  2004-12-07 07:03:54  No: 55495  IP: [192.*.*.*]

説明が足りずに申し訳ありません。
ClassWizardにて作成したメインフレーム上に自分で作成したClistViewがあり、そのビューに対して、ダイアログバーを作成したいと言う事です。
宜しくお願いします。

編集    削除
Kiritsu  2004-12-09 11:40:46  No: 55496  IP: [192.*.*.*]

私自身、調べてみましたが、やはり出来ないようですね。
どなたからも、ご回答が得られませんでしたので、とりあえず出来ないと
いう事で解決とさせて頂きます。
ダメ元ではあったのですが、申し訳ありませんでした。
ありがとうございました。

編集    削除
てつや  2004-12-09 19:28:08  No: 55497  IP: [192.*.*.*]

うーん。"できるけど意味がない。"が一般的な回答なのではないかな。
リストビューの本体やカラムとかにかぶってレイアウトがぐちゃぐちゃになるし、
きれいに配置したいならならみいさんが言うようにフレームウィンドウで
やった方が簡単だし。
どんな目的でダイアログバーを作りたいのかな。

編集    削除
なーめ  2004-12-09 19:50:07  No: 55498  IP: [192.*.*.*]

Win2Kのエクスプローラのツリービューって、
なにげに、「フォルダ」ってタイトルバーが付いてますよね。
これってどうもSDIフレームというよりビューに付属している
ように見えますね。

では実際にどうなっているか。
これを Spy++ で確認すると、
ReBar に TreeView と ToolBar が乗っています。
そのように実装するものなのですね。

まあ、何事もまねっこからということで。

編集    削除
Kiritsu  2004-12-10 03:24:46  No: 55499  IP: [192.*.*.*]

ご意見ありがとうございます。
またまた、私の説明不足でした。
メインフレーム上のビューをスプリットビューで分割して、その内の
一つのビューにダイアログバーを使用したいという意味でした。
ToolBarだと簡単に出来るのしょうか?
コンボボックスを使用する為にダイアログバーを採用しようと思って
いたのですが、ToolBarを改造してみようかと思います。
ありがとうございました。

編集    削除
てつや  2004-12-10 11:27:26  No: 55500  IP: [192.*.*.*]

スプリット分割したビューをCListViewからCFormViewにして、
その上にコンボボックスやリストビュー(CListCtrl)を配置するのが
ベターではないでしょうか。

多分ダイアログバーは不要になると思いますが、つける事は可能です。
(ON_UPDATE_COMMAND_UIは使えないし、ドッキングとかは難しいですが。)

スプリット分割をやめて、なーめさんが書かれたようなReBarにしてしまう
のも手ですね。この場合、ReBarはフレームの子にします。

編集    削除
Kiritsu  2004-12-10 19:32:25  No: 55501  IP: [192.*.*.*]

ありがとうございました。
どういった形で実現するかは、まだ決定しかねますが、何とか頑張ってみます。
かなりあきらめ気味の投稿でしたが、皆様のおかげで色々な選択肢を持つ事が
出来ました。
本当にありがとうございます。

編集    削除