vs2008 MFC 怎样对手动创建的对话框 进行消息事件响应 如点击按钮响应MessageBox(L"nihao")。

基本对话框(父对话框)添加一个按钮控件“生成”,左键单击"生成",响应DoModal()函数生成一个子对话框,在子对话框中添加按钮控件“点击”,左键单击“点击”,响应MessageBox函数,弹出一个对话框 !
怎么实现?
我建立一个基本对话框程序,对话框中有个按钮。通过点击这个按钮可以打开一个模态对话框。
希望模态对话框在激活时,它里面的控件能够被初始化。请问,我改在哪里对这些控件做初始化。
我之前在OnInitDialog()设置了,但是打开的模态对话框时无效的,代码如下:
BOOL CAboutDlg::OnInitDialog()
{
CDialog::OnInitDialog();

// TODO: Add extra initialization here
GetDlgItem(IDC_BTN)->EnableWindow(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CTestDlg::OnBtn()
{
CDialog aboutDlg(IDD_TEST);
aboutDlg.DoModal();
}

谢谢!

step1.父对话框:ID:IDD_LIBRARY_DIALOG
在里面建一个button:ID:IDC_SHENGCHEN 命名:生成
step 2.子对话框:ID:IDD_SON
在里面建一个button:ID:IDC_DIANJI 命名:点击
step 3.在子对话框[建立类向导],VC会提醒你要为子对话框新建一个类,新建它,命名为son,点击确定
step 4.在父对话框
点击“生成”之后的行为指令
void CTestDlg::OnOK()
{
UpdateData(); //父对话框的数据传进来,这里可以省略
son DlgObj; //son类为刚才为 子对话框新建的类
DlgObj.DoModal();

}
step 5.在这个CtestDlg.cpp(父对话框cpp)的前面添加#include "son.h",如果没添加的话,
son DlgObj;这个语句电脑识别不了son类
step 6在子对话框
点击“点击”之后的行为指令
void son::OnOK()
{
UpdateData(); //子对话框的数据传进来,这里可以省略

MessageBox("好好学习,天天向上!");
UpdateData(FALSE); //将相关数据传回子对话框,这里什么也没传

}

基本对话框的初始化:
在父对话框IDD_LIBRARY_DIALOG,[建立类向导] ,
Message Maps : Class names: CtestDlg
Objiect ID: CtestDlg
Message :WM_INITDIALOG
先 Add Function:,
然后 Edit code
BOOL CtestDlg::OnInitDialog()
{
CDialog::OnInitDialog();

// TODO: Add extra initialization here 在这里初始化父对话框。

return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}

我的回答能够解决楼主的问题吗?还有疑问可以补充,希望可以帮到忙~。~
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-06-04
额... 这个貌似自己写的代码就两三行,直接用vs2008 MFC 在基于对话框模式下操作就好了。本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网