模态对话框的显示问题

下面是一个菜单的消息响应函数,点击该菜单后,出现一个模态对话框,在模态对话框中显示数据库中的数据,需要怎么实现?这里dlg.DoModal()之后的代码在模态对话框关闭之... 下面是一个菜单的消息响应函数,点击该菜单后,出现一个模态对话框,在模态对话框中显示数据库中的数据,需要怎么实现? 这里dlg.DoModal()之后的代码在模态对话框关闭之前是不能执行的,所以数据不能显示出来,要怎么样解决呢
void CAccesscontrolView::OnUserGroup()
{
// TODO: Add your command handler code here
UGDlg dlg;
dlg.DoModal();
try
{
m_pRecordset.CreateInstance("ADODB.Recordset");
_bstr_t strCmd="select * from student";
m_pRecordset=m_pConnection->Execute(strCmd, &RecordsAffected,adCmdText);
}
catch(_com_error &e)
{
AfxMessageBox(e.Description());
}
_variant_t id,name,birthday,age;
try
{
while(!m_pRecordset->adoEOF)
{
id=m_pRecordset->GetCollect("编号");
name=m_pRecordset->GetCollect("姓名");
birthday=m_pRecordset->GetCollect("出生年月");
age=m_pRecordset->GetCollect("年龄");
CString strtemp;
if(id.vt != VT_NULL)
{
strtemp.Format("%d",id.lVal);
}
if(name.vt != VT_NULL)
{
strtemp+=" ";
strtemp+=(LPCTSTR)(_bstr_t)name;
}
if(birthday.vt != VT_NULL)
{
strtemp+=" ";
strtemp+=(LPCTSTR)(_bstr_t)birthday;
}
if(age.vt != VT_NULL)
{
strtemp+=" ";
strtemp+=(LPCTSTR)(_bstr_t)age;
}
dlg.m_list_ug.AddString(strtemp);
m_pRecordset->MoveNext();
}
}
catch(_com_error &e)
{
AfxMessageBox(e.Description());
}
// dlg.DoModal();
}
展开
 我来答
ruby9997
2011-10-18 · 超过68用户采纳过TA的回答
知道小有建树答主
回答量:137
采纳率:0%
帮助的人:164万
展开全部
首先,在CLASS VIEW中找到你domodal的那个对话框,右键
ADD Windows message handler,选择WM_ONINITDIALOG消息,这样你就添加了对于该消息的响应函数。
然后你可以在这个函数体内下一个断点,你跟踪会发现,domodal后会先跳到这个代码段里。

这是一个对话框完成初始化时必须执行的一个函数。你可以把初始化的代码全部写在这里面。

你这么做完全可以,但是对话框是用来交互的
最简单快捷的办法是添加一个按钮,然后点击按钮的时候,读数据库。
此时,读数据库的代码可以放在按钮的消息响应函数里
qiaodamo
2011-10-18 · TA获得超过912个赞
知道小有建树答主
回答量:337
采纳率:100%
帮助的人:276万
展开全部
把读取数据库的代码放到UGDlg的OnInitDialog()函数中去做。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式