基于对话框的程序,主对话框和弹出对话框如何交流
我建了一个基于对话框的程序,对access数据库进行查找.
由于找到多条记录,于是我又建了一个dlgB想让多条记录显示在dlgB里让用户选择,
然后再把用户所选的第几条记录(一个数值nSelect)返送回主对话框.
我在对dlgB里的listctrl插入记录似乎不能正常执行.
我在mainDlg.h里
CdlgB dlgB;
在mainDlg.cpp里的一个函数里进行操作
try
{
rs.Open(dbOpenDynaset,strSQL);
...
CListCtrl *ctlList = (CListCtrl *)dlgB.GetDlgItem(IDD_DIALOG1) ;
rs.MoveLast();
nLoaded=rs.GetRecordCount();
if (nLoaded==1) var = rs.GetFieldValue(0);
else
{
rs.MoveFirst();
while (!rs.IsEOF())
{
var = rs.GetFieldValue(0);
ctlList->InsertItem(nItem,CCrack::strVARIANT(var));
nItem++;
rs.MoveNext();
}
}
...
catch(CDaoException* e)
{
DisplayDaoException(e);
e->Delete();
}
结果执行之后,在dlgB里的listctrl不显示记录,而且我也不知道该怎么把选好的nSelect传给主程序
请各位帮帮忙
问题点数:30、回复次数:12Top
1 楼zuzubo(kewen)回复于 2006-03-17 02:37:55 得分 5
你的dlgB对话框是在哪个地方DoModal( )的啊?
你应该先建立dlgB,然后赋值给dlgB的listctrl里,最后DoModal( );
要取dlgB的某个值,你可以DoModal( )后,用dlgB.listctrl.GetColumn;Top
2 楼syy64(太平洋)回复于 2006-03-17 08:24:30 得分 2
两个对话框应该互相声明对方的指针作为自己的成员变量。Top
3 楼Elysium(東鱗覀爫)回复于 2006-03-17 08:39:16 得分 2
或者建立一个消息通讯,将一个LVITEM或索引值发送到主窗口处理Top
4 楼laiyiling(陌生人[MVP])回复于 2006-03-17 08:42:10 得分 17
http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=203350Top
5 楼he_sl(he_sl)回复于 2006-03-17 08:46:20 得分 2
互相保存对方的指针,直接调用相关函数或发消息Top
6 楼xx_jj()回复于 2006-03-17 08:52:48 得分 0
指针就行Top
7 楼rainfall007(夏天的雨)回复于 2006-03-17 12:23:43 得分 0
先谢谢各位,我晚上试一下Top
8 楼rainfall007(夏天的雨)回复于 2006-03-17 21:07:28 得分 0
pdlg=new CDialog2;
pdlg->Create(IDD_STANDARD,this);//IDD_STANDARD是Dialog2的资源
pdlg->m_list.DeleteAllItems();//m_list是对话框2上的列表控件
pdlg->ShowWindow(SW_SHOWNORMAL);
最后一行怎么pdlg->DoModal();会出错呢?
Top
9 楼rainfall007(夏天的雨)回复于 2006-03-17 21:20:52 得分 0
如果直接
CDialog2 dlg2;
这时不能修改dlg2里的东西
但是能:
dlg2.DoModal();
如果:
pdlg=new CDialog2;
pdlg->Create(IDD_STANDARD,this);//IDD_STANDARD是Dialog2的资源
pdlg->m_list.DeleteAllItems();//m_list是对话框2上的列表控件
这时能修改东西,
但是不能.domodal();Top
10 楼syy64(太平洋)回复于 2006-03-18 11:19:06 得分 2
无模式对话框不能用DomodulTop
11 楼rainfall007(夏天的雨)回复于 2006-03-18 11:37:54 得分 0
那如何在模式对话框里获得主对话框的一个变量值呢?
就差这一点就可以搞定了
或者说怎么得到主对话框里的变量指针呢Top
12 楼rainfall007(夏天的雨)回复于 2006-03-18 11:42:39 得分 0
dlg1.h里include "dlg2.h"
dlg2.h里include "dlg1.h"
这样好象就有错误了
两个对话框应该互相声明对方的指针作为自己的成员变量。应该怎么做呢?Top




