在MFC普通工程中,我可以通过Class Wizzard来给一个资源(比如IDC_EDIT之类的)实例化一个对象。但是我在ATL工程中想实例化这样的一个对象,我要如何做呢?

解决方案 »

  1.   

    使用WTL里的CWinDataExchange模板类class CMyDialog
      : public ...
      , public CWinDataExchange<CMyDialog>
    {
    ...BEGIN_DDX_MAP(CMyDialog)
      DDX_CONTROL( IDCANCEL, m_btnCancel )
    END_DDX_MAP()CMyButton m_btnCancel;  // CMyButton必须有SubclassWindow成员函数
    };CMyDialog::OnInitDialog( ... )
    {
      DoDataExchange();
    }
      

  2.   

    WTL可以说是ATL在窗口方面的扩展。只要装了WTL,并且在程序中添加了合适的头文件,在ATL里就可以使用。