程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> 關於VC++ >> 在MFC工程中添加ATL

在MFC工程中添加ATL

編輯:關於VC++

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.運行結果

(全文完)

本文配套源碼

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved