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

初識WTL(下)

編輯:關於VC++

代碼運行效果圖如下:

接上一節,我們這次在SDI中添加一個按鈕,用來演示彈出一個自己添加的對話框。

因為WTL目前不支持像MFC那樣的Class Wizard,所以我們得手動添加一些代碼。首先我們在Resource View中Insert Dialog,接下來我們也可以借用一下MFC的Class Wizard,如圖:

這裡的CAxDialogImpl也可是CDialogImpl,MFC的Class wizard確實沒為我們的小程序作些貢獻,除了生成.h和.cpp文件,相信以後WTL也可以有Class Wizard支持。別忘了在你的.h文件中添加#include "resource.h"可以參照AboutDlg添加你的代碼。這裡我主要介紹在WTL中怎樣使用DDX/DDV機制,如果你很清楚MFC中的DDX/DDV,這對你來說是so easy!

首先,你的在頭文件中添加

(1)#include <atlddx.h> //對使用DDX/DDV macro的定義
#include <atlcom.h>
#include <atlhost.h>  //這兩個文件是使對話框可以使用ActiveX控件
(2)class CDlgTest : public CAxDialogImpl<CDlgTest>,
public CWinDataExchange<CDlgTest>//封裝了DDX/DDV運行機制
(3)添加宏:BEGIN_DDX_MAP(CDlgTest)
DDX_CONTROL(IDC_TREE_WTL, m_Tree) // m_Tree我們自己定義的一個控件
END_DDX_MAP()
這些都和MFC的基本類似,最後在OnInitDialog中添加DoDataExchange(false);就完成了和MFC一樣的DDX/DDV。另外,在對話框添加了一個菜單,添加方法和MFC的一樣,你也可以在程序中添加代碼來完成!

參考資料:WTL for MFC Programmers 作者:Michael Dunn 在此深表感謝

本文配套源碼

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