小弟是初学者,望大家说的能详细些...感谢!用MFC向导创建对话框.
好像MFC默认是创建的模态对话框,不知道能不能改成非模态的?1.用MFC创建对话框后,我是在...App类的Initlnstance()里
注释了int nResponse = dlg.DoModal();并添加
CTextingDlg *m_textingdlg = new CTextingDlg;
m_textingdlg->Create(IDD_TEXTING_DIALOG);
m_textingdlg->ShowWindow(SW_SHOW);
结果是对话框闪了下就没了.那么应该在什么地方加入创建代码?都有些什么方法?2.创建模态对话框A,用A调用模态话框或非模态对话框B同时关掉A方法是什么?如何实现?
好像MFC默认是创建的模态对话框,不知道能不能改成非模态的?1.用MFC创建对话框后,我是在...App类的Initlnstance()里
注释了int nResponse = dlg.DoModal();并添加
CTextingDlg *m_textingdlg = new CTextingDlg;
m_textingdlg->Create(IDD_TEXTING_DIALOG);
m_textingdlg->ShowWindow(SW_SHOW);
结果是对话框闪了下就没了.那么应该在什么地方加入创建代码?都有些什么方法?2.创建模态对话框A,用A调用模态话框或非模态对话框B同时关掉A方法是什么?如何实现?
把它定义为成员变量,闪一下是因为生存期结束了。
2.创建模态对话框A,用A调用模态话框或非模态对话框B同时关掉A方法是什么?如何实现?
就是当关闭A时(重载OnCancel或是OnOK,取决于你想在何时关掉A),定义一个B的变量,然后.DoModal()就可以了,这就是模式调用。
分也没什么用吧..!
这不是可用分.
直接放在了类private下面...暴错2.我类声明成员变量CTexting *m_textingdlg;
在类...App成员函数Initlnstance()里
m_textingdlg = new CTextingDlg;
m_textingdlg-> Create(IDD_TEXTING_DIALOG);
m_textingdlg-> ShowWindow(SW_SHOW);
还是闪了下就没了.不知道我什么地方错了...
2.模态对话框A再调用模态对话框B同时关闭A又如何实现呢?听说用线程能解决,呵呵,我还没看到那。还有别的方法吗?
直接放在了类private下面...暴错上面的语句是赋值了,在类的头文件中,只能定义,不能赋值。
CTextingDlg *m_textingdlg;2.模态对话框A再调用模态对话框B同时关闭A又如何实现呢? 听说用线程能解决,呵呵,我还没看到那。还有别的方法吗?
-----
假如,A上有个Button1,点击时,A关闭,B调出来。
那么,当点击Button1时:
CDialog::OnCancel()
B.DoModal()就可以了。
销毁了对话框之后再用B.DoModal()竟然能在作用域外成都创建,运行对话框B...最后在MSDN中找到
EndDialog does not close the dialog box immediately. Instead, it sets a flag that directs the dialog box to close as soon as the current message handler returns.再此感谢hua2136