ダイアログにFORMVIEWを表示したい。 – プログラミング – Home

ダイアログにFORMVIEWを表示した...
 
通知
すべてクリア

ダイアログにFORMVIEWを表示したい。


ぺこ。
 ぺこ。
(@ぺこ。)
ゲスト
結合: 18年前
投稿: 2
Topic starter  

VC++6.0を初めて3日の者です。
今まではVBでの開発を行っていました。

メインダイアログにFORMVIEWを数十個表示させたいと考えているのですが、
方法が全くわかりません。
FORMVIEWの追加を行い、CFORMVIEWクラスを定義しました。
他画面への遷移方法はわかるのですが、メインダイアログにFORMVIEWを
位置指定して表示させていく方法で頓挫しています。
まずは複数個ではなく、一つでも表示できればと思っております。

よろしくお願いいたします。


引用解決済
トピックタグ
ぺこ。
 ぺこ。
(@ぺこ。)
ゲスト
結合: 18年前
投稿: 2
Topic starter  

MFCで作成しております。


返信引用
超初心者
 超初心者
(@超初心者)
ゲスト
結合: 23年前
投稿: 139
 

FORMVIEWを数十個
つまりダイアログが数十個か
使い難そうという別の問題が発生してまでやらなきゃいけないことだろうか。

FORMVIEWってなんだっけ?

ダイアログにはドキュメントビューのウィンドウを置くのは
かなりMFCを知っていないといろいろ改造が必要で
お勧めできない。

ドキュメントなしFORMVIEWってありなのかな?
俺にはそこまではわかりません。

FORMVIEWが単なるダイアログで構わないなら
FORMVIEWじゃなくてCDialogの派生クラスでいいじゃん。


返信引用
aharen
 aharen
(@aharen)
ゲスト
結合: 18年前
投稿: 35
 

そんなにたくさんのFORMVIEWを?
しかもダイアログ上で?
FORMVIEWそのものがダイアログ的なウインドウですから
MDIのFORMVIEWではだめですか?
これならほしいだけFORMVIEWをつくれますけど

まちがったらごめんなさいだけど
ひょっとしたらHTML的な意味でのFORMのことかな
それでしたらエディトボックスとボタンを
ペタペタ貼り付けていけばよいけど


返信引用
とも
 とも
(@とも)
ゲスト
結合: 23年前
投稿: 65
 

>メインダイアログにFORMVIEWを数十個表示させたい
無理ではないと思いますが、やめておいた方が良いです。
他の人も言ってますが、ダイアログベースのプログラムならCDialogの
派生クラスで同じ事を実現するべきです。リソースエディタでダイアログ追加して
システムメニューなし、枠なし、子ウィンドウ、てな感じでプロパティ変えて
クラスを派生させればOKです。それを10個でも100個でも作って親ダイアログに
ハメて、切り替えて使う事は可能です。

>メインダイアログにFORMVIEWを位置指定して表示させていく方法
CDialogの派生クラス作ったらそのオブジェクトを親ウィンドウに持たせて
CDialog::Createでウィンドウ作成します。位置の指定はCWnd::SetWindowPosとか
でやって、表示の切り替えはCWnd::ShowWindowでやればOK。
あと、数十個を切り替えるなら、CDialogのポインタを入れる配列を用意しといて、
その配列にポインタを入れてから、配列使って操作すれば、コードが泥臭くなる
のを軽減出来るかもしれません。

でもどーしてもCFormView使いたいなら、最初からSDIのドキュメントビューで
プロジェクト作った方が良いと思いますよ。


返信引用
たいちう
 たいちう
(@たいちう)
ゲスト
結合: 23年前
投稿: 662
 

例えば、『EditBox + Button + Label』を1つのセットとして、
このセットを多数ダイアログに表示・処理したいのかな。

このような目的だとすると、、、

簡単なのは、全部のコントロールをダイアログに貼り付け、
IDを調節して、共通の関数で処理できるようにする。
見た目の調整は比較的楽ですので、後回しでよいでしょう。
コントロール3組くらいで実験すると良いでしょう。


返信引用
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2660
 

CFormViewやCTreeViewなどのCViewの派生クラスはドキュメント-ビュウ・アーキテクチャで
使用する事を前提としたクラスなのでその骨組みに沿って使わないなら別の解決方法を考
えた方が良いと思います。
例えば、ダイアログとして実装してタイトルバーも何も無いダイアログとして実装すれば、
同じような事はできると思いますし。
CViewクラスはSDIとかMDIで使う事を前提としたクラスだと思うので違う使い方をしたいと
考えているのであれば、考え直した方が多分無理の無い実装ができると思います。

あと、VBでいうフォームとVCのCFormViewは全く関係が無い物なので
もし名前で判断しているなら勘違いしていると思います。
この辺はVBの時の用語とは違っていますので用語の理解をきちんとしないと
色々誤解してしまいそうです。


返信引用
Raymond
 Raymond
(@Raymond)
ゲスト
結合: 18年前
投稿: 1

返信引用
久方ぶり
 久方ぶり
(@久方ぶり)
ゲスト
結合: 18年前
投稿: 7
 

なにやら、流れ的に出来ない&難しいような話になっていますが、
ドッキュ&ビューを作ればいいだけで、楽勝でできますよ。
使うフレームはCFrameWndね。


返信引用
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2660
 

何故に今更あがってきたのかと思ったら、スパム書き込みがあったのね。

ちなみに出来ないと言うより無理してCFormViewとダイアログを組み合わせるより
全部ダイアログでやっちゃったほうが楽でない?というだけの話かと思います。
SDIでなるならCFormViewって言うのもわかるんですけどね。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました