MFC VC++6.0 XP
ダイアログバーで「表示倍率」をユーザ入力してもらい、VIEWにて、表示倍率の
応じた表示をするプログラムを作成中です。
メインフレームでダイアログバーをクリエイトして、ユーザ入力に対して、メソッド
をつくり、あとは、VIEWに渡したいのですが、どうやったらいいのか、わかりませ
ん。詳しい方、よろしくおねがいします。
表示倍率を変数で用意して
ユーザ入力に対して表示倍率の変数を変化させる
↓
再描画命令
でよいのではないでしょうか。
「ダイアログバーをクリエイトする」の意味がいまいちよくわかりませんが
うみんちゅさん、レスありがとうございます。
フレームクラスでも、VIEWクラスでも変数を用意しています。
「ユーザが表示倍率を指定するイベント」が発生すると、フレームクラスでのイベント
ハンドル(関数)が、フレームクラスの変数に値を入れるのですが、そこから、「VI
EWクラスの変数へ、値をどうやってわたすのか」がよくわかりません。
ダイアログーバーをクリエイトするは、実際には、 CMainFrame::OnCreate()で以下の
コーディングをしています。
if(!m_wndDlgBar.Create(this, IDD_MAGNIFY, WS_VISIBLE | CBRS_TOP,
AFX_IDW_TOOLBAR))
{
TRACE0(Failed to create Dialogbar\n);
return -1;
}
m_wndDlgBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndDlgBar);
m_wndDlgBarは、CDialogクラスの変数です。
(修正)
m_wndDlgBarは、CDialogクラスの変数です。×
m_wndDlgBarは、CDialogBar m_wndDlgBar ;と宣言された変数です。○
口で説明するより、
このHPが分かりやすいかな。
http://hp.vector.co.jp/authors/VA000092/win32/classes.html
bunさん、ありがとうございます。
できました。以下が要点の部分です。
重ねて、ありがとうございました。
CMainFrame *wMainFrame = (CMainFrame *)this->GetTopLevelFrame() ;
m_Magnify = wMainFrame->m_Magnify ;//テストの為、変数に直接アクセス