`
xusaomaiss
  • 浏览: 615447 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

warning :OnDestroy or PostNcDestroy in derived class will not be called

 
阅读更多

应用程序中使用指针创建了对话框,在析构函数中使用delete时,会出现以下警告:

Warning: calling DestroyWindow in CDialog::~CDialog --
OnDestroy or PostNcDestroy in derived class will not be called.

我们在释放指针的时候应该先通过对话框指针调用DestroyWindow()方法,然后再用delete删除。

CDlg::~CDlg()
{
 if(m_pDlg!= NULL)
 {
  m_pDlg->DestroyWindow();
  delete m_pDlg;
 }
}

只有这样才可以把这个警告给去掉

 

备注:

       接了两次外包,发现有些问题,决定不再接外包了,第一:它影响到我的正常上班,第二:因为都是私人或是小公司的外包,无法像大公司一样,把需求,功能说清楚,以致做一下停一下,又有新功能又做一些,周期太长,钱太少。特别说明,已经不再接外包,如果接的话,就是牵个线了。

 

 

分享到:
评论

相关推荐

    模态对话框与非模态对话的几种销毁方法与区别

     Warning:calling DestroyWindow in CWnd::~CWnd OnDestroy or PostNcDestroy in derived class will not be called  由于是Warnning,没有太在意,后来随意上网一找发现,这个问题还是很严重的问题。  后,...

    MFC中解决子线程中打开非模态对话框内存泄漏实例(VC++2008)

    重写对话框的PostNcDestroy OnClose OnDestroy 具体代码如下: void CMyDlg::PostNcDestroy { TODO: 在此添加专用代码和 或调用基类 delete this; CDialog::PostNcDestroy ; } void CMyDlg::OnClose { ...

    aaa.rar_OnDestroy_PreTranslateMessage_childview opengl_onsize_vi

    这是用MFC编写的使用openGL的视口代码。 CChildView::CChildView() 构造函数 CChildView::~CChildView() 析构函数 BEGIN_MESSAGE_MAP(CChildView,CWnd ) 消息映射 ...void CChildView::OnDestroy() 销毁窗口

    计算机图形学实验一(DDA算法、中点算法、Bresenham算法、中点画圆算法)

    1、运行附件中参考例子,理解Visual C++和OpenGL的使用。 2、参照附件例子,修改程序,实现可以在视图客户区中进行绘图,并可以实现重画功能。 3、编程实现利用DDA算法、中点算法和Bresenham算法生成直线,并显示。...

    unigui0.83.5.820

    - UniDBGrid: _OnDataLoaded may be called before Grid is rendered - UniPageControl: TabIndex doesn't return correct index - UniComboBox in hidden TabPage bug in Chrome browser - UniApplication: New ...

    使窗口打开时时保持上次关闭时的大小

    class CMyDlg : public CDialogEx { protected: CRect m_rectSaved; // 用于存储窗口的原始大小和位置 // ... }; ``` 步骤二:在窗口的OnDestroy()消息处理函数中,保存当前窗口的大小和位置。OnDestroy()是窗口...

    MFC对话框里利用CHtmlView加载界面(一)————加载网页 - CSDN博客1

    2. `PostNcDestroy()`:防止`CView`类的默认行为销毁自身,因为`CHtmlView`已经处理了销毁操作。 3. `OnInitialUpdate()`:此函数在控件第一次显示时调用,通常用于初始化数据或执行加载操作。在这里,我们可以调用`...

    Android Studio 视频播放失败 start called in state1 异常怎么解决

    在Android开发中,使用`MediaPlayer`进行视频或音频播放时,可能会遇到各种异常情况,其中“start called in state 1”是一个常见的错误。这个错误通常意味着尝试启动`MediaPlayer`对象时,它处于不正确的状态,即...

    OnOK OnCancel OnClose OnDestroy 详解

    在使用C++进行MFC(Microsoft Foundation Class)编程时,我们经常会遇到与对话框生命周期相关的函数OnOK(), OnCancel(), OnClose(), 和OnDestroy()。这些函数分别对应不同的事件和阶段,正确理解和使用它们对于创建...

    Vc++国家信息系统

    void CExmpListDlg::OnDestroy() { CDialog::OnDestroy(); for(int nIndex=m_ListBx.GetCount()-1;nIndex>=0;nIndex--) { delete(SState*)m_ListBx.GetItemDataPtr(nIndex); } // TODO: Add your ...

    类 SDK窗口程序

    OnDestroy ; break; default: return DefWindowProc hWnd message wParam lParam ; } return 0; }">这个程序采用了Thunk技术 来自看雪的一个牛人 这个技术用到标准的SDK创建窗口中 就可以在 回调函数中...

    VC编程实现使用动画控件播放简单动画

    m_AnimCtrl.Create(ANIMATE_CLASS, NULL, WS_CHILD | WS_VISIBLE, IDC_ANIMATE, this, IDC_ANIMATE); // 加载AVI文件 m_AnimCtrl.Open(_T("path_to_your_avi_file.avi")); return TRUE; // 设置焦点到第一...

    如何关闭窗口

    在Windows编程中,特别是在使用Microsoft Foundation Class (MFC)库进行C++开发时,关闭窗口是一个常见的操作。本文将深入探讨如何在MFC环境中关闭窗口,包括基本的API调用、消息处理以及用户交互。 首先,我们需要...

    vc++ 对话框滚动字幕的简单实现

    class CScrollingTextDlg : public CDialog { //... CString m_text; // 存储滚动字幕的文本 int m_scrollSpeed; // 控制滚动速度 //... } ``` 接下来,我们需要在对话框的资源编辑器中添加一个静态文本控件...

    MFC数字钟(基于VC6.0)

    最后,别忘了在OnDestroy函数中删除定时器,防止内存泄漏: ```cpp void CDigClockDlg::OnDestroy() { KillTimer(1); // 删除定时器 CDialog::OnDestroy(); } ``` 通过以上步骤,我们就完成了一个基本的MFC数字...

    mfc中渐变关闭窗口

    在MFC(Microsoft Foundation Class)库中,开发者可以利用Windows API和自定义消息来实现平滑渐变关闭窗口的效果,这种技术通常被称为“CloseSmoothly”。这个过程涉及到多个步骤,包括处理窗口消息、动画控制以及...

    diplusSrc.rar

    class MyDialog : public CDialogEx { //... private: Bitmap* m_bitmap; GdiplusStartupInput m_startupInput; ULONG_PTR m_gdiPlusToken; void InitializeGDIPlus() { GdiplusStartup(&m_gdiPlusToken, &m...

    一个VC 计时器函数代码.rar

    class CMyDlg : public CDialog { DECLARE_DYNAMIC(CMyDlg) public: CMyDlg(CWnd* pParent = NULL); // 标准构造函数 virtual ~CMyDlg(); protected: afx_msg void OnTimer(UINT nIDEvent); DECLARE_MESSAGE_...

    VS2019CFontDialog对话框类例程MFCApplicationCFontDialogDemo.rar

    class CMyDialog : public CDialogEx { //... CFontDialog m_fontDlg; //... }; ``` 3. 初始化`CFontDialog`,可能在`OnInitDialog()`函数中: ```cpp BOOL CMyDialog::OnInitDialog() { CDialogEx::...

    MFC中一个定时器程序(1s刷新一次)

    void CMyDialog::OnDestroy() { CDialog::OnDestroy(); KillTimer(1); // 销毁定时器,ID与创建时一致 } ``` 4. **注意事项**: - 定时器的精度受到系统调度的影响,可能并不总是精确到1秒。 - 为了避免...

Global site tag (gtag.js) - Google Analytics