VC++6 如何显示一个对话框,并在对话框之间传递值?
VC++6.0我创建了一个MFC的test.exe工程,在里面创建了一个IDD_DIALOG1的对话框和IDD_DIALOG2的对话框,我用下面的代码试图显示对话框:CD...
VC++ 6.0 我创建了一个MFC的test.exe工程,在里面创建了一个IDD_DIALOG1的对话框和IDD_DIALOG2的对话框,我用下面的代码试图显示对话框:
CDialog aaa;
aaa.Create(IDD_DIALOG1,NULL);
aaa.ShowWindow(SW_SHOW);
但是我看到对话框闪了一下就没了,不知为啥。求解。
如果我提供的信息不够,哪位能直接提供一组代码,能完成此功能的,也行啊。另外,不要模态的哟。
还有就是我在IDD_DIALOG1和IDD_DIALOG2之间如何传递数据?
谢谢! 展开
CDialog aaa;
aaa.Create(IDD_DIALOG1,NULL);
aaa.ShowWindow(SW_SHOW);
但是我看到对话框闪了一下就没了,不知为啥。求解。
如果我提供的信息不够,哪位能直接提供一组代码,能完成此功能的,也行啊。另外,不要模态的哟。
还有就是我在IDD_DIALOG1和IDD_DIALOG2之间如何传递数据?
谢谢! 展开
4个回答
展开全部
如果你不是建立在其他对话框基础上的,把NULL改为GetDesktopWindow(),这个是桌面指针,这样就能直接在桌面界面创建显示一个非模态对话框了。MFC的架构不允许你直接使用非模态对话框做主窗口,因为在APP的InitInstance()函数中:
CfDlg dlg;
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();
...
return FALSE;
如果不使用模态窗口的话,程序就直接运行过
INT_PTR nResponse = dlg.DoModal();
这句话,并且退出了.
CfDlg dlg;
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();
...
return FALSE;
如果不使用模态窗口的话,程序就直接运行过
INT_PTR nResponse = dlg.DoModal();
这句话,并且退出了.
追问
多谢,另外能否再请教一个问题,我需要在多个窗口中调用一个类,我就把类在StdAfx.h进行了声明,并且在StdAfx.cpp中描述了类,但是我在几个不同的窗口中调用这个类来创建对象时,都提示我类未定义。如果我把这个类单独写成myclass.h引用,就会提示重复定义。大概是类中的Public Myclass()惹的祸。
请问如何处理~~谢谢!
追答
不要使用StdAfx文件中写自己的类。另外你说的 “类中的Public Myclass()”是什么意思,这个不是类的构造函数吗?和他没什么关系的,你出现重复定义可能是你引入myclass.h之后又在StdAfx.h中引入了myclass.h,把StdAfx.h中的include去掉或者直接引入StdAfx.h不用再次引入自己的myclass.h
展开全部
aaa.Create(IDD_DIALOG1,NULL); 这里你的父窗口指针都是NULL了 肯定显示不了啊
把View类窗口做主窗口 在View类里写调用函数 指针为this即可
关于传值 用同一个对话框类创建不同的对象就可以了
把View类窗口做主窗口 在View类里写调用函数 指针为this即可
关于传值 用同一个对话框类创建不同的对象就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对话框2.number=对话框1.number1;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为aaa被定为一个局部变量,所以函数结束时自动释放对话框变量aaa.定义一个成员变量就行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询