matcom,Visual C++混合编程

Radical608 2008-05-22 03:20:17
我做的是一个对话框,有几个控件,
当我运行程序时,
点对话框上的控件后,即执行响应函数后,会正常关闭程序,任务管理里没有此进程了,
但,如我运行程序后,就点关闭,窗口有闭关,但程序没有正常退出,任务管理有些进程,,
void CExampleDlg::OnDrwaImg() //控件
{
double a1,a2;
Mm P1,P2;
UpdateData(TRUE);
initM(MATCOM_VERSION);
a1=m_edit1;
a2=m_edit2;
CWnd* p1=NULL;
p1=(CWnd*)GetDlgItem(IDC_PIC);
Mm plothandle=winaxes(p1->m_hWnd);
huatu(a1,a2,i_o,P1,P2);
m_edit3.Format("%f",P1.r(1,1));
m_edit4.Format("%f",P2.r(1,1));
UpdateData(FALSE);
exitM();
}
...全文
540 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2008-05-22
  • 打赏
  • 举报
回复
为什么说,同时注意不要再调用基类的OnOK函数??

是因为,如前条指令已销毁对话框,去调用OnOK,而OnOK再调用EndDialog时会发生错误嘛??
「已注销」 2008-05-22
  • 打赏
  • 举报
回复
孙鑫的书上有这么一段话:
读者会发现上述示例中无论创建的是模态对话框,还是非模态对话框,当单击对话框上的OK按钮时,对话框都会消失.但有一点需要提醒读者注意,对模态对话框而言,此时对话框对象被销毁了.而对非模态对话框来说,对话框窗口对象并未被销毁只是隐藏了起来.我们来分析一下在非模态对话框中单击OK按钮后,程序所发生的事情.这时,程序会调用基类(CDialog)的OnOK函数,这是一个虚函数.后者又会调用EndDialog函数,这个函数用于终止模态对话框,而支非模态对话框,这个函数只是使对话框不可见,并不销毁它.


因此,对非模态对话框来说,如果有一个ID值为IDOK的按钮,就必须重写基类的OnOK这个虚函数,并在重写的函数中调用DestroyWindow函数,以完成销毁对话框的工作,同时注意不要再调用基类的OnOK函数.!!!

觉得这句有问题,

MSDN: DestroyWindow这个函数销毁一个与CWnd相连接的Windows窗口..........,它不销毁对象!!!
既然不销毁对象,哪能完成销毁对话框的工作!
goldanycom 2008-05-22
  • 打赏
  • 举报
回复
VS.Net群-1号:23266021
VS.Net群-2号:4510861
VS.Net群-3号:22671516
VS.Net群-4号:23266396
VS.Net群-5号:13047396
VS.Net群-6号C++:57806388
VS.Net群-7号WinForm:62365220
VS.Net群-8号敏捷开发:62365516

VS.Net技术群欢迎大家加入,发扬团队互助,长期潜水,将被提出!
请注明来自csdn
rageliu 2008-05-22
  • 打赏
  • 举报
回复
未退出消息循环,PostQuitMessage

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧