在MFC工程中添加ATL

王朝vc·作者佚名  2006-01-17
窄屏简体版  字體: |||超大  

在MFC工程中添加ATL

作者:orange

下载示例工程

ATL初学者,很希望和大家多交流,多谢!

说明:

1.新建一个基于对话框的project:(MFC_in_ATL)

2.Insert/New ATL Object...,

此时出现如图对话框:

点击yes,如下图:

接着Next,如下图:

确定即可。

注:在出现第一个图所示的对话框时,有可能出现如下图所示的情况:

按确定,不要管它,然后再Insert/New ATL Object...,就可以了,这是个bug。

3.我们是使用“ATL对话框向导”添加对话框的,从CaxDialogImpl派生的,它既可以继承ActiveX控件也可以继承Windows控件。如果不希望对话框类中有ActiveX控件支持开销,可以手工修改为CSimpleDialog或CDialogImpl。其中,CsimpleDialog派生类只能为有模式对话框存在,CDialogImpl允许实现继承Windows控件的有模式或无模式对话框。

4.在ATLDlg.h中添加代码:public BSTR b1;

LRESULT OnOK(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)

{

CMFC_in_ATLDlg *maindlg;

char ms[50];

maindlg=(CMFC_in_ATLDlg *)AfxGetMainWnd();

GetDlgItemText(IDC_EDIT_ATL,b1);

CString str(b1 == NULL ? L"" : b1);

maindlg-AddStr(str);

sprintf(ms,"%s",str);

maindlg-PostMessage(WM_TEST,(WPARAM)ms,NULL);

//EndDialog(wID);

return 0;

}

5.在MFC_in_ATLDlg.h中添加一个函数AddStr(const CString &str)和自定义消息函数afx_msg void OnGetMessage(WPARAM wParam,LPARAM lParam);

在MFC_in_ATLDlg.cpp中代码如下:void CMFC_in_ATLDlg::OnOK()

{

// TODO: Add extra validation here

CATLDlg atldlg;

atldlg.DoModal();

// CDialog::OnOK();

}

void CMFC_in_ATLDlg::AddStr(const CString &str)

{

SetDlgItemText(IDC_EDIT_MFC,str);

}

void CMFC_in_ATLDlg::OnGetMessage(WPARAM wParam,LPARAM lParam)

{

CString str;

str=(char *)wParam;

SetWindowText(str);

}

6.运行结果

(全文完)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航