请问怎么在一个DLG中向另一个DLG传值?
我想在一个DLG中得到第一个列的LOGIN值,代码如下:
其中m_Listusers是列表控件的成员,m_user_total是得到的所有行的最大值,m_user是一个struct指针
现在想把在这个列表中的选中的LOGIN值传到另一个对话框中,并用它的值初始化那个对话框的LOGIN栏,请问要怎么做,还有就是我下面这个代码在运行时会出错。出错代码如下:
:\work for vc\CreditBox\GetUsers.cpp(106) : error C2664: 'Credit::Credit' : cannot convert parameter 1 from 'int' to 'class CWnd *'
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
请问怎么改进?
代码如下:
void GetUsers::OnDblclkListUsers(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
if(*pResult!=NULL)*pResult = 0;
//_________________________________________________________
POSITION pos=m_Listusers.GetFirstSelectedItemPosition();
int i=-1,login=0;
if(pos!=NULL && (i=m_Listusers.GetNextSelectedItem(pos))>=0 && i<m_user_total)
login=m_user[i].login;
Credit dlg(login);
dlg.DoModal();
}
问题点数:100、回复次数:4Top
1 楼EddieCai()回复于 2006-07-03 17:58:22 得分 0
lz,这不叫运行时出错,这是编译时出错。
出错的原因在Credit dlg(login);这一行。
Credit的构造函数要求一个CWnd *型的参数,你传一个int给它当然不对啊。你改成Credit dlg(this);看看。Top
2 楼EddieCai()回复于 2006-07-03 18:00:41 得分 60
另外你要在GetUsers对话框中传值进Credit对话框,那你可以在Credit里加一个方法,例如void Init(int data),在dlg.DoModal();前调用,把相应的值传递进Credit,然后在Credit的OnInitDialog里使用这个传进来的值进行控件的相应初始化。Top
3 楼xqk(夏乾坤)回复于 2006-07-03 20:47:08 得分 40
Credit dlg(this); 就可以了,指定当前窗口为父窗口
该对话框需要的是一个父窗口的CWnd* 指针Top
4 楼bristy(一踏糊涂)回复于 2006-07-04 14:04:38 得分 0
问题解决,谢谢两位Top




