ども、はじめまして。
コントロールを配置できるのは、ダイアログベースかCFormViewだけなのでしょうか?
ダイアログじゃなく、SDI or MDIを選んでCViewとかではコントロールを
配置することは無理なのでしょうか?
たとえば、CButtonのメンバ変数を作って、Createメソッドでビュー内の適当な位置に作
成することはできますよ。
ただ、リソースで管理できないのでCFormViewを使うのに比べて面倒でしょう。
返信ありがとうございます。
ということは、ツリーコントロール等のコントロール変数を用意して
自分で表示位置などを設定すれば問題なくできるということで合っていますでしょうか?
ためしにやってみればよいのでは?
ただ、イベントの追加等は(ソースの自動生成ではなく)自分でやらないといけないでし
ょうけど。
> ということは、ツリーコントロール等のコントロール変数を用意して
> 自分で表示位置などを設定すれば問題なくできるということで合っていますでしょうか?
CFormViewをCViewみたいに見せる方法もあります。
コントロールを全て自分で管理するよりも楽だと思いますので、
両方試してみてはいかがでしょうか。
老婆心ながら忠告をば。
乱暴に言えば、コントロールと言うモノはこの世に存在しません。
コントロールと呼ぶものは、全て子ウインドウです。
たとえば、ぽこっと膨らんだ背景画を持ち、マウスでクリックイベントで
へこんだ背景画へすり替えを行う子ウインドウをボタンと呼んでるだけ。
Buleさんの言うところは、子ウインドウなんだから、ダイアログだろうが
Viewだろうがそんなの関係ねぇい!。ってことです。(タブン
絵ズラをリソースとして記憶できるのがダイアログであり、ダイアログを
継承したViewがCFおrmViewってだけです。
CViewのクライアント領域いっぱいに外観を
子ウインドウとしたダイアログを表示して
GUIデザインを手っ取り早く済ませる方法は
VC2.0時代からあったと思います。
確か、CFormViewはCDialogを継承していなかったはずです。
CWnd - CView - CScrollView - CFormViewだったはず。
但し、中身的にはCDialogの機能をそっくり移植したような作りだったはずなので
CDialogと同じようなコードを手動で追加する事で色々対応可能だったと思います。
どこかの掲示板でそのような話が出ていました。
で、CFormViewではなぜ駄目なのかと言う説明が無いので適切なレスが付きにくい
状態だと思います。外観だけの話ならその気になれば変更できますからね。
大量のコントロールを扱うならCFormViewの方が断然楽です。
数が少ないならCViewを使ってコントロールは自前でCreateして配置すると言うのも
ありでしょう。
>自分で表示位置などを設定すれば問題なくできるということで合っていますでしょうか?
何を持って問題なくと判断するかだと思います。
メッセージハンドラの追加なんかを全て手動で行う事ができるのであれば、
使うだけなら問題なく使えると思います。
(要はこの辺のフレームワークを理解しているかどうかが問題)
IDEの機能を使ってメッセージハンドラの追加ができないなら使えないと言う話なら
問題有りと言う事になると思います。
追記
リソースを使うメリットが管理しやすさやデザインのしやすさ以外に
リソースを使うとユーザーの画面の設定にある程度追随してくれると言うのがあります。
自前でサイズや位置を指定する場合はピクセル値で設定しますが、
ユーザーが画面上のフォントサイズや解像度を変更していると想定したレイアウトに
ならない事があります。サイズや位置をしてする時にちゃんとこの辺を想定して
調整するようにしていれば問題有りませんが、ピクセル値を固定で持っていると
レイアウトが崩れます。
リソースはピクセル値ではなくてダイアログ単位と言う数値でサイズや位置を持っていて
実際にコントロールを配置するときはこの値を元に解像度やフォントサイズを考慮して
ピクセル値を計算しています。この為、設定に追随してくれるわけです。