创建有个性的对话框之ATL/WTL篇

本文介绍了如何使用ATL/WTL框架创建具有特色的对话框,包括使用嵌入类处理窗口消息、改变对话框背景颜色、响应WM_CTLCOLORXXX消息以及自定义按钮的绘制。通过实例展示了ATL/WTL的灵活性和与MFC的区别,帮助读者理解如何在ATL/WTL中实现对话框的个性化设计。
摘要由CSDN通过智能技术生成
Google

前记
    这几个嵌入类其实很早之间就完成了,2003年的时候我在CodeProject上发布了这些代码,不过当时使用了紫色作为按钮的边框,导致几个无聊的LY在哪里争吵关于Gays的问题,呵呵,看来不仅语言要接轨,颜色的认识也要和西方接轨哟。现在刚好趁这个机会整理一下代码,写篇文章纪念之。

    本文的目的是使用ATL/WTL做一个与“创建有个性的对话框之MFC篇”的个性对话框一样的对话框。ATL/WTL一套模板库,创建ATL/WTL应用程序不可避免的要用到C++的模板与多继承方面的知识,在看本文之前希望您对它们有所了解。本文结尾可以下载文中介绍的例子代码,编译这些代码需要安装WTL库,对于WTL的更详细的信息请查看oRbIt翻译的“WTL for MFC Programmers”系列文章,具体位置在:http://blog.csdn.net/orbit
    ATL和WTL一起构建了一个轻量级的应用程序框架,ATL在设计时接口定义和实现是严格区分开的,这在窗口类的设计中是最明显的,这一点类似于COM,COM的接口定义和实现是完全分开的(或者可能有多个实现)。ATL有一个专门为窗口设计的接口,可以做全部的窗口操作,这就是CWindow。它实际上就是对HWND操作的包装类,对几乎所有以HWND句柄为第一个参数的窗口API的进行了封装,例如:SetWindowText() 和 DestroyWindow()。在ATL类中对窗口过程的实现是CWindowImpl。CWindowImpl 含有所有窗口实现代码,例如:窗口类的注册,窗口的子类化,消息映射以及基本的WindowProc()函数,可以看出这与MFC的设计有很大的不同,MFC将所有的代码都放在一个CWnd类中。
    由于ATL和MFC都是应用于Windows平台的库,所以他们都能够响应和处理系统发送的窗口消息,只是ATL和MFC对消息的分派方式不同,从而造成编写代码方面的差异。这些差异并不是不可逾越,ATL也定义了一些与MFC类似的宏来处理和分派消息,每个ATL的窗口类都用一个消息映射表或者称其为消息映射链,将消息处理函数与特定的消息关联起来,这和MFC的做法是类似的。少量的不同之处在于消息响应函数的参数,MFC对Windows的消息参数,也就是w

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吹泡泡的小猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值