WTL实践经验总结(不断更新)

学习WTL快半年了,但是实际工作中根本用不到。一是因为公司不允许,二是有效的资源还比较少。通常情况下,自娱自乐的时候我还是选择WTL来做界面。在这里,我把平时学习实践过程中的东西(思想)保留下来,供大家参考,也可以互相进步。

这篇文章可能会很长很长,但是划分了4个模块:

  1. 一.WTL的使用
  2. 二.WTL的结构
  3. 三.WTL的剖析
  4. 四.WTL的资源
  5. 五.WTL的项目(我自己写的哦)

选择WTL很大部分原因都是因为对模板的迷恋,不知为啥,C++的魅力尽然在模板!好,开始我们的征程吧。

 

一 WTL的使用

1.安装:网上已经很多这样的文章了,看这里这里

2.帮助插件:VisualFCWTLHelper

3.教程:

 

 

二 WTL的结构

WTL的类大致分为:

1.框架窗口:CFrameWindowImpl、CMDIFrameWindowImpl

2.控件封装: CButtonT、CListViewCtrl

3.GDI封装: CDCT、CMenuT

4.特殊界面封装:CSplitterWindow、CUpdateUI、CCustomDraw

5.实用工具类:CString、CRect

6.宏:BEGIN_MSG_MAP、END_MSG_MAP

 

先来看看令人头疼的“宏”介绍吧:

1.在atlcrack.h中,BEGIN_MSG_MAP_EX和END_MSG_MAP_EX用来处理窗口消息的派发

   1: // Note about message maps with cracked handlers:
   2: // For ATL 3.0, a message map using cracked handlers MUST use BEGIN_MSG_MAP_EX.
   3: // For ATL 7.0 or higher, you can use BEGIN_MSG_MAP for CWindowImpl/CDialogImpl derived classes,
   4: // but must use BEGIN_MSG_MAP_EX for classes that don't derive from CWindowImpl/CDialogImpl.
   5:  
   6: #define BEGIN_MSG_MAP_EX(theClass) /
   7: public: /
   8:     /* 在UI类中,声明一个m_bMsgHandled的变量,来判断消息是否已处理,是否需要传给基类*/ /
   9:     BOOL m_bMsgHandled; /
  10:     /* "handled" management for cracked handlers */ /
  11:     BOOL IsMsgHandled() const /
  12:     { /
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值