人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Visual VC++ 2005 のMFCに関する質問です。
1つのダイアログ画面が、2つのクラス(子画面)で構成されています。
親画面は、「MainDlg.class」子画面はそれぞれ「Upper.Class」と「Lower.Class」 とします。
子画面から、親画面のOKボタン()をクリックする方法についてご教授ください。

※MainDlg::OnBnClickedOk()を子画面から実行する方法です。

●質問者: Vacuum
●カテゴリ:コンピュータ インターネット
✍キーワード:Class VC++ クラス クリック ダイアログ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● cx20
●100ポイント ベストアンサー

画面のイメージは以下のような感じでしょうか?

MainDlg

UpperView
IDC_UPPER_BTN

LowerView

IDC_LOWER_BTN

IDOK IDCANCEL

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
◎質問者からの返答

おお、すばらしい。

ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ