VC++6.0(MFC) SDIでのフレーム生成
■ このスレッドは過去ログ倉庫に格納されています
0001machoto
NGNGフレーム(CFrameWnd)を生成し、そこにさらにViewを表示させたいのですが
どのようにして良いのかわからなくて質問してみました。
フレームの生成のみなら↓みたいにしてできたのですが
------------------------------------------------------------
m_pTopoFrm = new CTopoFrm(); // CTopoFrmはCFrameWndの派生クラスです
m_pTopoFrm->Create(NULL,"テストフレームタイトル",
WS_OVERLAPPEDWINDOW,CRect(100, 100, 100+270, 100+85));
m_pTopoFrm->ShowWindow(SW_SHOW);
m_pTopoFrm->UpdateWindow();
------------------------------------------------------------
これにView(Document)の関連付け等・・・がわからないので
何方か教えてください。
お願いします。
0002デフォルトの名無しさん
NGNGを使うが、CTopoFrmクラスにCViewの派生クラスをメンバとして設定し、
CTopoFrm::OnCreateのラストでフレームの子ウインドウとして表示
しても目的は達成できると思われ。
0003デフォルトの名無しさん
NGNGおいらも同じことをやろうとして断念した。
結局、CFrameWndの派生クラスに直接処理を書いちゃったよ。
1さんは何をしたくて、Viewの関連付けをしたいのですか?
0004デフォルトの名無しさん
NGNG無駄な苦労。
0005machoto
NGNGいやちょっとC/C++の関数フローをGDIで描画しようと思ってるんですけどね。
その表示用のViewクラスもできているんですけど、メインフレームには
ソースを表示させたいので、このフロー表示Viewは別フレームに表示させたい
んですよ。
2さんの言うとおりCFrameWndの派生クラスのOnCreate()で
やるのも手なんですけど、言われているようにドキュメントテンプレートから
生成させるという解説がMSDNの中でもされていますし、それがセオリー通りの
ような気もします。でもそれが・・・・わかんないっす。
どなたかこの方法のサンプルか助言とかして頂けないですか?
0006デフォルトの名無しさん
NGNGそれを継承(あるいはサブクラス化)してViewクラスと等価な機能を
実装すればいいではないか?
もちろん制御はメインのViewクラスからすることになるだろうけど。
ていうか個人的にはMDIを使わない理由の方が興味あったり(w
0007デフォルトの名無しさん
NGNGはっきりいって親フレームウィンドウ邪魔。
なんであんな設計にしたのかね。
昔のVB、DelphiやBulderのIDEみたくツールバー風窓+αの方が良い。
0008デフォルトの名無しさん
NGNGなんで親と子の2段しかないのかね?
好きなだけ階層化させてくれや。
あれなら全部対等な窓しかないSDIのほうがすっきり。
MultiDocumentってのがいかさまくさい。
単に並べてるだけじゃないか。
どうせならStructurizedDocumentとかNetworkDocumentとか
(綴り間違だったら御免)やってみそ。
そういう表現が欲しいことも結構あるぞ。
0009>7-8
NGNG役にも立たない。今でも壁紙表示させたりする程度かな?
どうせならあの部分削除して後ろの窓表示させてくれ。
マルチSDI>>>>>>>>>>>>>>>>>>>>>MDI
0010デフォルトの名無しさん
NGNGただし
http://hp.vector.co.jp/authors/VA006374/DocBar.htm
こういうモノが入っているという前提で。
これが入ってないと使えないって話もあるが(w
#ん?つまり標準では糞、ってことか(藁
0011>>10
NGNG自分は好きだけど、意外と嫌いという人も多いね。
00128
NGNGナイス。なるほど、タスクバーを入れ子(笑)にしたわけね。
ちなむとそれ、どんなキー操作でDoc間を行き来できるんでしょか?
タスクだとAlt+Tabだけど。
あ。Alt+W+なんとか(ありがちなWindow切り替え)、ってのは無しね(笑)
0013デフォルトの名無しさん
NGNGCXxxDoc *partDoc=new CXxxDoc;
Xxx_frame=new CXxxFrame;
CCreateContext Context;
Context.m_pNewViewClass=RUNTIME_CLASS(CXxxView);
Context.m_pCurrentDoc=partDoc;
Context.m_pNewDocTemplate=NULL;
Context.m_pLastView=NULL;
Context.m_pCurrentFrame=NULL;
Xxx_frame->LoadFrame(IDR_Xxx,WS_OVERLAPPEDWINDOW|FWS_ADDTOTITLE,NULL,&Context);
Xxx_frame->InitialUpdateFrame(partDoc,TRUE); // Viewへ
厨房の頃のコードなので、正しいかどうかは確認してください。
001410
NGNGMDIの標準Window切換ショートカット Ctrl+F6 で行けます。
0015デフォルトの名無しさん
NGNGどもっす。おお。ほんとだ動く。>Word
ところでF使わないキーバインドは存在しますか?
Fなんてうぜぇものは出来るだけ使いたくないんで。
#HHKまんせー
■ このスレッドは過去ログ倉庫に格納されています