我点击那个X关闭对话框,可是怎么都关不了,
只能通过CDialog::OnOK()或者CDialog::OnCancel()来关闭,这样子正常么?

解决方案 »

  1.   


    我没有这个函数,必须得加上是么?我只有这些:
    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持
    virtual BOOL OnInitDialog();
    virtual void OnOK();
    virtual void OnCancel();afx_msg void OnPaint();
      

  2.   

    代码:// Summary.cpp : 实现文件
    //#include "stdafx.h"
    #include "MuhonEditor.h"
    #include "NewDlg.h"// CNewDlg 对话框IMPLEMENT_DYNAMIC(CNewDlg, CDialog)BEGIN_MESSAGE_MAP(CNewDlg, CDialog)
    ON_WM_PAINT()
    END_MESSAGE_MAP()
    CNewDlg::CNewDlg(CWnd* pParent /*=NULL*/)
    : CDialog(IDD_DLG_NEW, pParent)
    {
    }CNewDlg::~CNewDlg()
    {
    }void CNewDlg::DoDataExchange(CDataExchange* pDX)
    {
    CDialog::DoDataExchange(pDX);
    }
    // CNewDlg 消息处理程序BOOL CNewDlg::OnInitDialog()
    {
    CDialog::OnInitDialog(); SetWindowPos(NULL, 0, 0, 460, 230, SWP_NOMOVE); return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
    }void CNewDlg::OnOK()
    {
    // CDialog::OnOK();
    }void CNewDlg::OnCancel()
    {
    // CDialog::OnCancel();
    }void CNewDlg::OnPaint()
    {
    CDialog::OnPaint();
    }
      

  3.   

    知道问题出在哪了,我这个对话框有这么一些控件定义: enum
    {
    CTLID_NONE = 0, CTLID_COMBOBOX_FORMAT,
    CTLID_CHECK_BUILDING,
    CTLID_CHECK_ALPHA,
    CTLID_BTN_SELECT_TERRAIN_FILE_PATH,
    CTLID_BTN_SELECT_DST_FILE_PATH,
    CTLID_BTN_CONFIRM,
    CTLID_BTN_CANCEL,
    };
    当我把起始值改成1000的时候,窗口就能正常关闭了,
    所以,我猜,可能是我定义的控件ID,和关闭按钮的控件ID有冲突