分割ウィンドウでのメッセージ?の送信 – プログラミング – Home

分割ウィンドウでのメッセージ?の送信
 
通知
すべてクリア

分割ウィンドウでのメッセージ?の送信


さおり
 さおり
(@さおり)
ゲスト
結合: 23年前
投稿: 31
Topic starter  

こんばんは。さおりと申します。
環境は、WinMe、VC++6.0、MFCです。

左右に2つの分割ウィンドウを作成して、左にフォームビュー、右にスクロールビューを
貼り付けてます。
今回の質問に関係あるかわかりませんが、シングルドキュメントで、テンプレートの
作成の時は、ランタイムクラスにフォームビューの方を登録してます。

フォームビューであるボタンが押されたら、その結果を右のスクロールビューに
表示させようと考えています。

しかし、フォームビューでボタンが押された! ということを右のスクロールビューに
どうやって教えればよいのかがわかりませんでした。

どなかか教えてください。
よろしくお願いいたします。


引用解決済
トピックタグ
TAD
 TAD
(@TAD)
ゲスト
結合: 23年前
投稿: 54
 

フォームビューのボタンが押された際、

GetDocument()->UpdateAllViews(this);

とすれば、その他のビュー(ここではスクロールビュー)の、
OnUpdate が呼び出されます。

これを利用できませんか?


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

1.CDocument に各 View へのポインタを持たせておく。
 CView *m_pFormView, *m_pScrollView;  

2.CDocumentのコンストラクタでNULLに初期化。

3.各 View のOnInitialUpdate で、ポインタに自分のアドレスを代入。
 CDocument *pDoc = GetDocument();
 pDoc->m_pForm = this;

4.FormView で ScrollView を参照したいときは、CDocument 経由で参照。
  一応、NULLのチェックはしたほうが良いかも。

必要に応じて cast してください。
この方法で他の View へのアクセスが可能ですが、
better な方法があるような気がします。


返信引用
ひろぴー
 ひろぴー
(@ひろぴー)
ゲスト
結合: 22年前
投稿: 182
 

フォームビューをCFormView1
スクロールビューをCScrollView1としたとき

フォームビューで

extern CScrollView1* pScrollView1;

としておき、

スクロールビューで

CScrollView1* pScrollView1;

スクロールビューのコンストラクタで

pScrollView1 = this;

としておくとフォームビューから直接スクロールビューを参照出来ます。
フォームビューでスクロールビューのヘッダをインクルードするのも忘れずに。

楽なので、いつもこの方法でドキュメントビューアーキテクチャは無視しています(^^;)


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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