无模式对话框,关了再开,为什么下拉框里的东西没有了? 我在InitiDialog里用AddString添加进先拉框的,第一次开的时候有。把对话框关了再开就没有了,为什么?另外,如果改成无模式对话框,就会出访存错误。太郁闷了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 发给我看看[email protected] 怎么样销毁呢,不是DistroyWidow吗? 在OnOK和OnCancel中ShowWindow(SW_HIDE)然后返回,不要调基类的对应函数,下次要显示时ShowWindow(SW_SHOW)。 showwindow 还是 domodal 得非模式 如果使用无模式的对话框,简单步骤如下:1.在使用对话框的类中声明成员函数:CMyDlg* m_pMyDlg;2.在使用对话框的类中初始化该成员。如果是CWnd的子类,在OnCreate重载中即可。m_pMyDlg=new CMyDlg() //如果从对话框中引用,父窗口的变量或方法,可以使用CMyDlg(this),但要在CMyDlg 中设置一个到该类的指针。//在相应的CMyDlg的事件处理中,就可以用该指针调用窗口的方法了。 m_pMyDlg->Create(IDD_MYDLG,this);3.在需要的地方显示该对话话,并进行相应操作。m_pMyDlg->ShowWindow(SW_SHOW);4.在合适地位置销毁该对话框。if(pMyDlg) delete m_pMyDlg; 从数据丢失角度看,你肯定已经把对话框销毁了。如果你想保持数据,就不应该销毁它可能导致销毁的动作有1. 点了右上角的叉,又没有截掉WM_SYSCOMMAND或者OnOK,或者截获了但是在处理函数中直接或者间接的调用了CDialog::OnOK;CDialog::OnCancel或者EndDialog2. 按了回车而又没有截了defaultButton的处理函数或者截获了但是在处理函数中直接或者间接的调用了CDialog::OnOK;CDialog::OnCancel或者EndDialog3. 直接或者间接的调用了CDialog::OnOK;CDialog::OnCancel或者EndDialog4. 删除了或者析构了对话框对象你上面所谓的关掉对话框,如果想保持数据,绝对不能通过任何途径调用CDialog::OnOK;CDialog::OnCancel或者EndDialog/DestroyWindow.当你想关时,只能用ShowWindow上面哪位说ShowWindow和DoModal相关,那时瞎说吧:) 我在InitiDialog里用AddString添加进先拉框的,第一次开的时候有。把对话框关了再开就没有了。既然是在init里面做addstring,每次创建这个对话框肯定都会进行添加的。。除非你的关了是指把控件清空掉然后hide 正确销毁非模式:1:调用DestroyWindow();2:重载PostNcDestroy函数,删除指针:delete this; 【求救】如何在不同Dialog中,对界面中的所有元素的标题进行动态的修改??? 怎么捕获不到列表框(CListBox)控件的WM_NOTIFY消息? 如何获取锁定计算机事件 如何编程获取本机的工作组? 想开发一个类利于QQ或者是网易泡泡/MSN之类的通讯软件,大家给点意见.谢谢!!! 导出奇怪的函数:??0CKBLock@@QAE@XZ 关于数据转换一问? 怎么知道程序的哪一部分最占用磁盘空间? 关于通过Socket接收数据的问题 终端用户角色和文件使用权限的绑定 一个关于定义变量的问题 内存释放~~!谢谢帮哈忙,老是出CMemoryException错
[email protected]
如果使用无模式的对话框,简单步骤如下:
1.在使用对话框的类中声明成员函数:
CMyDlg* m_pMyDlg;2.在使用对话框的类中初始化该成员。如果是CWnd的子类,在OnCreate重载中即可。m_pMyDlg=new CMyDlg()
//如果从对话框中引用,父窗口的变量或方法,可以使用CMyDlg(this),但要在CMyDlg 中设置一个到该类的指针。
//在相应的CMyDlg的事件处理中,就可以用该指针调用窗口的方法了。
m_pMyDlg->Create(IDD_MYDLG,this);3.在需要的地方显示该对话话,并进行相应操作。m_pMyDlg->ShowWindow(SW_SHOW);
4.在合适地位置销毁该对话框。
if(pMyDlg)
delete m_pMyDlg;
1. 点了右上角的叉,又没有截掉WM_SYSCOMMAND或者OnOK,或者截获了但是在处理函数中直接或者间接的调用了CDialog::OnOK;CDialog::OnCancel或者EndDialog
2. 按了回车而又没有截了defaultButton的处理函数
或者截获了但是在处理函数中直接或者间接的调用了CDialog::OnOK;CDialog::OnCancel或者EndDialog3. 直接或者间接的调用了CDialog::OnOK;CDialog::OnCancel或者EndDialog4. 删除了或者析构了对话框对象你上面所谓的关掉对话框,如果想保持数据,绝对不能通过任何途径调用CDialog::OnOK;CDialog::OnCancel或者EndDialog/DestroyWindow.当你想关时,只能用ShowWindow上面哪位说ShowWindow和DoModal相关,那时瞎说吧:)
1:调用DestroyWindow();
2:重载PostNcDestroy函数,删除指针:delete this;