1つのダイアログ画面が、2つのクラス(子画面)で構成されています。
親画面は、「MainDlg.class」子画面はそれぞれ「Upper.Class」と「Lower.Class」 とします。
子画面から、親画面のOKボタン()をクリックする方法についてご教授ください。
※MainDlg::OnBnClickedOk()を子画面から実行する方法です。
画面のイメージは以下のような感じでしょうか?
MainDlg
|
MainDlg::OnBnClickedOk()を子画面から実行する方法
子画面から親画面のボタンに対して「BM_CLICK」メッセージを送信すれば、
MainDlg::OnBnClickedOk() を呼ぶことになります。
以下は、OK ボタンの ID が「IDOK」の場合のサンプルです。
void CUpperView::OnBnClickedUpperBtn() { CWnd* pWnd = GetParent(); // 親画面のウィンドウ(MainDlg)を取得 CWnd* pButton = pWnd->GetDlgItem( IDOK ); // 親画面のボタン(IDOK)を取得 pButton->SendMessage( BM_CLICK, 0, 0 ); // ボタンクリック(BM_CLICK を送信) }
<参考情報> ■ ダイアログのボタンを押すメモ(Hishidama's VC++ click dialog button Memo) http://www.ne.jp/asahi/hishidama/home/tech/vcpp/clickdlg.html ■ 指定したWindowにボタンクリックメッセージを送る方法 http://www.sutosoft.com/oldroom/devdiary/20010919.html
おお、すばらしい。
ありがとうございます。