• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            面對現實,超越自己
            逆水行舟,不進則退
            posts - 269,comments - 32,trackbacks - 0

            視圖類調用非模態對話時,如何銷毀分配的內存

            簡要步驟:

            1視圖類在調用非模態對話框時,將自身的指針傳遞給非模態對話框。
            2當非模態對話框結束時,向視圖類發送自定義消息,由自定義消息處理函數來釋放內存。

            具體代碼步驟:

            1定義自定義消息  #define WM_RELEASEPLAYSOUNDDC (WM_USER+1001)
            2修改非模態對話框類的構造函數,便于將視圖指針傳遞進去。

            非模態對話框.h文件中

            class CTestDialog : public CDialog
            {
                DECLARE_DYNAMIC(CPlaySound)

            public:
                //CTestDialog (CWnd* pParent = NULL);   // standard constructor
                CTestDialog (CView* pParent);   // standard constructor
                virtual ~CTestDialog ();
                CView *pView;

            // Dialog Data
                enum { IDD = IDD_TEST_DIALOG };

            protected:
                virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support

                DECLARE_MESSAGE_MAP()
            public:
                virtual BOOL OnInitDialog();
                afx_msg LRESULT OnNcHitTest(CPoint point);

            };

            非模態對話框.cpp文件中

            IMPLEMENT_DYNAMIC(CTestDialog, CDialog)
            //CTestDialog::CTestDialog(CWnd* pParent /*=NULL*/)
            CTestDialog::CTestDialog(CView* pParent)
                : CDialog(CTestDialog::IDD, pParent)
            {
                pView = pParent;
            }

            3、在非模態對話框結束的時候發送自定義消息
            void CTestDialog::OnBnClickedBtnClose()
            {
                // TODO: Add your control notification handler code here
                pView->PostMessage(WM_RELEASEPLAYSOUNDDC, 0, 0);
                OnOK();
            }

            4、在視圖類.h文件中,增加定義:
            afx_msg LRESULT OnReleaseDialog(WPARAM wparam,LPARAM lparam);

            5、在視圖類.cpp文件中,增加消息映射部分:
            ON_MESSAGE(WM_DIALOGOK,OnDialogOk)

            6、在視圖類.cpp文件中定義消息處理函數的實現:

            LRESULT CTestView::OnReleaseDialog(WPARAM wparam,LPARAM lparam)
            {
                if (m_pPlaySound != NULL)
                {
                    delete m_pPlaySound;
                    m_pPlaySound = NULL;
                }

                return 0;
            }
            posted on 2014-03-07 15:01 王海光 閱讀(1751) 評論(0)  編輯 收藏 引用 所屬分類: MFC
            久久精品国产亚洲AV高清热| 久久久久无码精品| 国产精品久久久久久久人人看 | 久久久久国产一区二区| 久久国产午夜精品一区二区三区| 人人狠狠综合久久亚洲| 久久久久亚洲精品无码蜜桃| 久久精品国产亚洲一区二区| 亚洲va久久久久| 国产精品美女久久久久av爽 | 久久精品午夜一区二区福利| 青青青青久久精品国产| 久久伊人精品青青草原高清| 思思久久99热免费精品6| 2021久久精品国产99国产精品| 亚洲中文字幕久久精品无码喷水| 欧美日韩成人精品久久久免费看| 亚洲AV无码久久精品蜜桃| 婷婷综合久久中文字幕蜜桃三电影| 国产亚洲婷婷香蕉久久精品 | 久久99国内精品自在现线| 久久国产AVJUST麻豆| 日本一区精品久久久久影院| 久久精品国产99国产精品亚洲| 久久综合日本熟妇| 2021国内精品久久久久久影院| 91久久精品国产成人久久| 伊人久久综在合线亚洲2019| 狠狠色噜噜色狠狠狠综合久久 | 久久久久99精品成人片| 亚洲国产精品婷婷久久| 91精品国产9l久久久久| 精品久久久久久无码专区| 久久久无码精品亚洲日韩蜜臀浪潮| 久久久久亚洲av成人无码电影| 国産精品久久久久久久| 一本久久免费视频| 精品永久久福利一区二区| 亚洲av伊人久久综合密臀性色| 亚洲人成网亚洲欧洲无码久久| 老男人久久青草av高清|