在资源中添加一个窗口,双击窗口就会弹出“MFC类向导”输入类明后就会创建一个类,从此这个类就与这个窗口“关联”了。我已有一个窗口,也关联到了一个类,我从其它窗口复制了几个控件过来,双击控件想添加处理函数,这时又弹出“MFC类向导”,这前关联的类它居然不记得了
我怎样手动的设置这种关联???

解决方案 »

  1.   

    可能是你误改了头文件:// 对话框数据
    enum { IDD = IDD_XXX_DIALOG };
      

  2.   

    呵呵,自己复制过来的,就需要手动关联下,要么就保存控件,然后重新build下,要不,就删除.ncb和.clw文件,再重新编译下
    如果是手动关联
    1、申请变量,头文件中的,这个不用说了吧
    public:
      CButton m_btn;protected:
    HICON m_hIcon; // Generated message map functions
    //{{AFX_MSG(CTestDlg)
    virtual BOOL OnInitDialog();
    afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
    afx_msg void OnPaint();
            afx_msg BOOL  OnDeviceChange(UINT nEventType, DWORD dwData);
    afx_msg HCURSOR OnQueryDragIcon();
    virtual void OnOK();
    afx_msg void OnButton1();//这个地方申明处理函数
    afx_msg void OnChangeEdit1();
    afx_msg void OnButtonColorbutton();
    //}}AFX_MSG
    DECLARE_MESSAGE_MAP()2、.cpp文件中void CTestDlg::DoDataExchange(CDataExchange* pDX)
    {
    CDialog::DoDataExchange(pDX);
    //{{AFX_DATA_MAP(CTestDlg)
    DDX_Control(pDX, IDC_BUTTON_COLORBUTTON, m_btnColorButton);
    DDX_Control(pDX, IDC_EDITFOCUS, m_editFocus);
    DDX_Control(pDX, IDC_BUTTON1, m_btn);//关联变量
    DDX_Control(pDX, IDC_DATETIMEPICKER1, m_DateTtimeCtrl);
    DDX_Text(pDX, IDC_EDITFOCUS, m_dbValue);
    //}}AFX_DATA_MAP
    }
    BEGIN_MESSAGE_MAP(CTestDlg, CDialog)
    //{{AFX_MSG_MAP(CTestDlg)
    ON_WM_SYSCOMMAND()
    ON_WM_PAINT()
    ON_WM_QUERYDRAGICON()
    ON_BN_CLICKED(IDC_BUTTON1, OnButton1)//关联处理函数
    ON_BN_CLICKED(IDC_BUTTON_COLORBUTTON, OnButtonColorbutton)
    //}}AFX_MSG_MAP
    END_MESSAGE_MAP()写处理函数 
    void CTestDlg::OnButton1() 
    {
        m_DateTtimeCtrl.SetFocus();
    }
      

  3.   

    找到了,是一楼说的enum { IDD = IDD_XXX_DIALOG }; 我修改了窗口的ID ,而enum {}仍然指向以前的ID,手动改过来就好了