我写了一段程序,利用一个对话框CAddPageDlg对数据库中的两个表进行插入操作。可以从两个地方打开 对话框,
void CCBTDlg::OnAddBtn() 
{
CAddPageDlg* pPageDlg;
......
case 2: //click section,add page
pPageDlg = new CAddPageDlg(true,rsID,-1);
pPageDlg->DoModal();
delete pPageDlg;
break;
case 3: //click page,add page
pPageDlg = new CAddPageDlg(false,-1,rsID);
pPageDlg->DoModal();
delete pPageDlg;
break;
......
}
由于需要给对话框传递一些数据,所以我修改了对话框的构造函数,所以使用指针来操作对话框
CAddPageDlg::CAddPageDlg(BOOL bl,long upID,long ID,CWnd* pParent /*=NULL*/)
: CDialog(CAddPageDlg::IDD, pParent)//此处true为从section进入,false为从page
//进入,均 为添加页
{
//{{AFX_DATA_INIT(CAddPageDlg)
//}}AFX_DATA_INIT
sectionID = pageID = -1;
if(bl) sectionID = upID;
else pageID = ID;
this->bl = bl;
db.Open(_T("CBTDB"));
}
同时,在对话框CAddPageDlg中对onok进行响应,进行一些数据库操作
void CAddPageDlg::OnOK() 
{
// TODO: Add extra validation here
.....
CDialog::OnOK();
}
现在出现的问题是:从case 2可以正常进行操作,从case 3可以打开对话框并在OnInitDialog中对对话框 显示数据进行初始化,但是我点击‘确认’——原来的ok按钮,没有进行任何改动——没有任何响应,在 调试中发现,连onok函数都没有进;点击‘取消’按钮响应正常(就是退出了)。请教各位这是什么问题 怎么解决。