MDIのドキュメントウィンドウの同期 – プログラミング – Home

MDIのドキュメントウィンドウの同期
 
通知
すべてクリア

[解決済] MDIのドキュメントウィンドウの同期


初心者
 初心者
(@初心者)
ゲスト
結合: 24年前
投稿: 206
Topic starter  

環境:
WindowsXP SP2
MicrosoftVisualStudio2005 VisualC++ MFC MDI(ScrollView)

質問:
はじめまして。いつも参考にさせてもらっています。

データファイルから数値を読み取り、OpenGLで描画させ、拡大・縮小させるプログラムを
作っています。
目標はそれぞれ異なるデータを読み込んだ複数個のウィンドウを表示し、マウスホイール
の操作ですべてのウィンドウを同期させながら拡大・縮小させる事です。
現在はデータを読み込み表示させ、マウスホイールで拡大・縮小させるところまで出来て
います。

ただ、ウィンドウ同士の同期の方法がわかりません。
マウスホイールで拡大させるソースは以下になっています。

BOOL CVvtestView::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt)
{ scale=scale-zDelta*0.001f;
if(scale<1.0f) scale=1.1f;
Invalidate(FALSE);
return CScrollView::OnMouseWheel(nFlags, zDelta, pt);
}

どなたかお分かりになられる方、ご教授お願いします。


引用未解決
トピックタグ
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 21年前
投稿: 600
 

複数のViewがひとつのDocumentにアタッチされているなら、
そのドキュメントにUpdateAllViewsすれば全ViewにOnUpdateが
飛ぶんで、そいつ使ってスクロール量を通知できないかしら。


返信引用
しま
 しま
(@しま)
ゲスト
結合: 18年前
投稿: 123
 

複数あるビューでそれぞれ OnMouseWheel を受取って同じ処理をするのなら

CxxApp か CxxMainFrame かで OnMouseWheel を受け取ってから CxxDocument に
ホイールの変化量を通知して、UpdateAllViews で各ビューに描画させるのが
いいかもしれない


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

受け取った子ウィンドウからMainFrameにいったんメッセージを投げて
MainFrameから他の子ウィンドウに投げる


返信引用
初心者
 初心者
(@初心者)
ゲスト
結合: 24年前
投稿: 206
Topic starter  

επιστημηさん、しまさん、rinさん、貴重なご意見ありがとうございます。
ここ数日、みなさんのご意見を参考に解決策を模索しましたが、ここまでサンプルソー
ル等を頼りにしてきた自分では完全な実力不足であるようです。

しばらくは必死に勉強したいと思います。
質問できるレベルになったらまた質問させていただきたいと考えていますので、その時
はどうかよろしくお願いします。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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