メインウィンドウで表示しているステータスを別ウィンドウである値を変更したら
メインで表示しているそのステータスの表示も変更させるという処理を作成しています。
メインウィンドウはCUNIPULSEViewでクラスを作り CStatic m_staticModeSelect
で宣言しており、これを別ウィンドウのCModeSelectDlgのクラスで参照したいのです。
アクティブウィンドウの場合、GetActiveViewでいけるようなのですが
アクティブでない場合はどうすればよろしいでしょうか?
わかりにくい質問の書き方ですみませんがよろしくお願いします。
> メインウィンドウはCUNIPULSEViewでクラスを作り CStatic m_staticModeSelect
> で宣言しており、これを別ウィンドウのCModeSelectDlgのクラスで参照したいのです。
コントロールを参照したいのですか?
設計からの見直しをお勧めします。
基本的には,何らかのDocumentクラスにデータを保持させておいて,
データの変更をDocumentがViewに通知する,
というのがDocument/Viewアーキテクチャです。
Dialogクラスで変更が生じた場合,
コンストラクタかなんかで受け取っておいたDocumentクラスに対して,
変更を行います。
#これがダイアログ上での値の変更に相当。
そして,Documentの更新が終わったら,
CDocument::UpdateAllViewsを呼び出します。
#DocumentのSetterの内部でSetModifiedFlagを呼び出しておくこと。
そうすると,ViewクラスのCView::OnUpdateが呼び出されます。
このタイミングで,m_staticModeSelectの文字列を変更してやればよいです。