![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
MFCプログラミング初心者ですが、宜しくお願いいたします。
---------------プログラム環境---------------
WinXP2 Visula Studio 2005 Pro
--------------------------------------------
現在、上記の環境で、SDIプログラムを書いています。
ご教示していただきたいことは、分割ウィンドウにおけるそれぞれの窓の
表示内容を変えたいということです。TCP/IPのプログラムで、受信したMessageをstrstrなどで振り分けて、各々の窓に表示したいのですが、
どういう風にやればいいのですか??
なお、一つのViewに受信メッセージを表示させることは出来ました。
非常に困っています。
現在、CMainFrame::OnCreateClient(~~~)とMainFrame.cppに書き、
ウィンドウを3分割にしております。
m_wndSplitter.CreateStatic(this,1,2);
m_wndSplitter.CreateStatic(&m_wndSplitter,2,1,WS_CHILD | WS_VISIBLE,WS_BORDER,m_wndSplitter.IdFromRowCol(0,1));
m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(??View)),~~
m_wndSplitter1.CreateView(0,0,RUNTIME_CLASS(??View)),~~
m_wndSplitter1.CreateView(1,0,RUNTIME_CLASS(??View)),~~
この用に記述しております。
説明しずらいのですが、??Viewの箇所にスケルトンの時にできていたView
クラスを入れてやると、そのエリアに受信メッセージが表示されます。
初心者なので、まと外れかもしれませんが、新しいViewクラスを作成して
なにかやれば、よいのでしょうか?? 現在3つのウィンドウにそれぞれの
メッセージを表示させたいので、Viewクラスはそれぞれ3個なければ、いけないのでしょうか??
わかりずらい説明で申し訳ないですが、宜しくお願いいたします。
No.3ベストアンサー
- 回答日時:
MFCのクラスをそのまま使うってことはないかもしれないけど
あえてそれを無視して、という前提で。
左側は
((CEditView *)m_wndSplitter.GetPane(0,0))->SetWindowText("左だよ");
右側の上は
((CEditView *)m_wndSplitter1.GetPane(0,0))->SetWindowText("上だよ");
右側の下は
((CEditView *)m_wndSplitter1.GetPane(1,0))->SetWindowText("下だよ");
かな。
#実際はSetWindowTextなんか使わないと思うけど、
#ここは一例ということで。
何か勘違いしていたみたいで、基本クラスを派生して、Viewオブジェクトを
指定してやることで、Msgを描画出来ました。
アドバイスありがとうございました。
No.2
- 回答日時:
エクスプローラのように
それぞれのペインに表示させるものが違うのならば
#1さんのおっしゃるようにそれぞれの表示に
対応するCViewの派生クラスが必要でしょう。
すぺて同じ形式の表示ならば同じCViewの派生クラスにしてもいいかな。
どちらにしても、CSplitterWnd::GetPane()
で目的のペインのViewを取得して描画をすればいいかと。
ご回答ありがとうございます。
CSplitterWnd::GetPane()で分割の列と行を取得して、そこに描画すると
いう事は調べている内に出てきてはいたのですが、具体的にどのように
したらいいのでしょうか??すみませんがご教授宜しくお願いいたします。
現在は、説明しにくいですが、3つのウィンドウすべてEditViewクラスに
していて、3つのウィンドウにTextOutなどで、staticに描画する事は出来るのですが、受信したMsgをリアルタイムに表示させたりする事が出来ません。宜しくお願いいたします。
No.1
- 回答日時:
多分3つ必要ですよ。
たとえば,分割して片方をEditView(C***EditView),
片方をView(C***View)にするときは,
m_spWnd.CreateView(0, 0, RUNTIME_CLASS(C***View), CSize(100, 0), pContext);
m_spWnd.CreateView(0, 1, RUNTIME_CLASS(CEdit***View), CSize(0, 0), pContext);
みたいにすれば,できます。
それ以外の方法もあるのかもしれませんが,
自分はこうしてます。
ご回答ありがとうございます。
回答していただいた内容で、
m_spWnd.CreateView(0,0,RUNTIME_CLASS(C***View),CSize(100,0),pContext);
m_spWnd.CreateView(0,1,RUNTIME_CLASS(C***2View),CSize(0,0),pContext);
で、例えばC***Viewの中に、OnDraw関数を使って、
pDC->TextOut(0,0,"窓1");
C***2Viewの中に、
pDC->TextOut(0,0,"窓2");
と、staticに描画する事は出来るのですが、あるTCP/IPの受信メッセージを、それぞれの窓に表示することが、出来ません。
受信したメッセージをそれぞれ振り分けて、それぞれの窓に表示したいの
です。 現在一つの窓にはメッセージを表示出来ているのですが、
新しく作ったEditViewクラスには表示出来ません。
説明がわかりずらいかも知れませんが、宜しくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本 1 2022/04/27 13:31
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- JavaScript 指定したパスが現URLに含まれていたら特定要素を削除するJavascriptのコードを教えてください 2 2023/04/27 17:58
- Visual Basic(VBA) VBA Bookの表示、非表示 1 2022/09/16 20:44
- C言語・C++・C# 【C++】IDirect3DSurfaceのディープコピーは可能ですか? 1 2022/07/06 02:47
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- その他(クラウドサービス・オンラインストレージ) Googleカレンダーの共有について質問させて頂きます。 現在、個人でのGoogleカレンダーと職場 2 2022/10/19 15:58
- Visual Basic(VBA) Vba LongPtrについて教えてください 2 2022/08/19 11:14
- Windows 10 プレビューウインドウに表示されたメッセージについて 1 2022/04/13 13:53
- その他(パソコン・周辺機器) デバイスのペアリングのウィンドウサイズがおかしい 1 2023/01/18 18:48
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
既定のコンストラクタがない?
-
FriendとPublicの違い。。。
-
ダイアログ表示時にチェックボ...
-
ボタンのオーナードローについて
-
エディットコントロールでEnter...
-
DataGridViewのセルに斜線を引...
-
C++ protectedにアクセス不可
-
C++のclassを、ウインドウプロ...
-
【ASP.NET】 独自で作成したク...
-
このコンパイルエラーの意味に...
-
MFCのCListCtrlでスクロールを検出
-
CMainFrameクラスの使い方
-
windowプログラム ピクチャー...
-
DLLからEXEのクラスを呼び出す...
-
正規表現 [^/]+ の意味を教えて
-
【C++】相互参照
-
(UWSC) 「#32770」の意味わかり...
-
OnPaintとOnDraw関数の違いにつ...
-
C#で通常のbuttonコントロール...
-
継承を重ねた場合のコストはど...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FriendとPublicの違い。。。
-
既定のコンストラクタがない?
-
(UWSC) 「#32770」の意味わかり...
-
ダイアログ表示時にチェックボ...
-
クラスのアドレスを引数として...
-
C++ protectedにアクセス不可
-
【ASP.NET】 独自で作成したク...
-
MFCアプリのコマンドラインでパ...
-
ダイアログクラスのコントロー...
-
エディットコントロールでEnter...
-
このコンパイルエラーの意味に...
-
CMainFrameクラスの使い方
-
イベントにAddHandlerされてい...
-
MFC モードレスDlgについて
-
MFCのCListCtrlでスクロールを検出
-
privateなメンバ関数をテストす...
-
[MFC] CWnd::MessageBoxの警告...
-
継承を重ねた場合のコストはど...
-
DataGridViewのセルに斜線を引...
-
ボタンのオーナードローについて
おすすめ情報