描述:
三个问题 昨天一直没有搞定 搞定马上给分!
1 如何把ATL中创建的对话框类CDialogImpl和对话框资源联系起来 ?
2 如何给一个接口添加属性?比如一个自定义的类CMyclass ?
3 vc中建立了一个COM工程然后加入了添加了一个接口 如何实现这个接口对应的类厂 ?
谢谢! 给出相关例子代码也给分!
解决方案1:
1、可以用向导直接添加(atl对话框);
eg:
class CmyDlg :
public CAxDialogImpl<CmyDlg>
{
public:
CmyDlg()
{
}
~CmyDlg()
{
}
enum { IDD = IDD_MYDLG };
BEGIN_MSG_MAP(CmyDlg)
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
COMMAND_HANDLER(IDOK, BN_CLICKED, OnClickedOK)
COMMAND_HANDLER(IDCANCEL, BN_CLICKED, OnClickedCancel)
CHAIN_MSG_MAP(CAxDialogImpl<CmyDlg>)
END_MSG_MAP()
};
2、向导可以直接添加属性,但属性不能为自定义类!
3、不用你去实现类工厂atl或者mfc已经替你做了!
hoho!
1. With CDialogImpl you can create a modal or modeless dialog box. CDialogImpl provides the dialog box procedure, which uses the default message map to direct messages to the appropriate handlers.
The base class destructor ~CWindowImplRoot ensures that the window is gone before destroying the object.
CDialogImpl derives from CDialogImplBaseT, which in turn derives from CWindowImplRoot.
Note Your class must define an IDD member that specifies the dialog template resource ID. For example, the ATL Project Wizard automatically adds the following line to your class:
enum { IDD = IDD_MYDIALOG };