Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2023638
  • 博文数量: 960
  • 博客积分: 52560
  • 博客等级: 大将
  • 技术积分: 13131
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-31 14:15
文章分类

全部博文(960)

文章存档

2011年(1)

2008年(959)

我的朋友

分类: C/C++

2008-08-01 16:56:21

下载本文示例代码
下载示例工程

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.运行结果



(全文完) 下载本文示例代码
阅读(272) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~