WTL学习笔记(1)

原创 2004年09月02日 21:22:00
一、ATL的GUI类

1.ATL中和窗口相关的类
ATL中的CWindow类定义了窗口的接口,它封装了绝大部分以HWND作为第一个参数的API函数,并直接将m_hWnd作为public成员提供。另外,它还重载了operator HWND,这样就可以将CWindow对象直接当作一个窗口句柄使用了。
ATL中窗口的实现是由CWindowImpl完成的,其中包括窗口类的注册、窗口的子类化、消息映射以及一个基本的WindowProc。另外,对话框的实现是由CDialogImplCAxDialogImpl完成的。其中前者是普通对话框,后者用于包含ActiveX控件的对话框。

2.定义窗口的实现
所有需要创建的非对话框窗口都继承自CWindowImpl,在其中需要做三件事情:一,定义窗口类;二,消息映射;三,窗口使用的默认样式。
窗口类的定义是通过DECLARE_WND_CLASSDECLARE_WND_CLASS_EX宏实现的,其中前者的参数是窗口类名,后者的参数分别是窗口类名、样式和背景色。如果使用NULL作为窗口类名称,那么ATL会自动生成一个窗口类名称。例如:
class CMyWindow : public CWindowImpl<CMyWindow>
{
public:
    DECLARE_WND_CLASS(_T("My Window Class"))
};
消息映射是通过BEGIN_MSG_MAPEND_MSG_MAP宏完成的,如下:
class CMyWindow : public CWindowImpl<CMyWindow>
{
public:
    DECLARE_WND_CLASS(_T("My Window Class"))

    BEGIN_MSG_MAP(CMyWindow)
    // 在这里完成映射内容
    END_MSG_MAP()
};
窗口类特性不常用,它是通过CWinTraits这个类模板完成的。

3.消息映射表
ATL中用三个宏来实现消息映射,它们是:
COMMAND_ID_HANDLER(命令ID, 处理函数)——用来处理WM_COMMAND
NOTIFY_HANDLER(控件ID, 通知码, 处理函数)——用来处理WM_NOTIFY
MESSAGE_HANDLER(消息名称, 处理函数)——用来处理其它消息。

myBatis学习笔记(1)——快速入门

在项目中使用myBatis 导入jar包 在src下创建配置文件
  • u010837612
  • u010837612
  • 2015年05月12日 11:06
  • 887

1.zabbix学习笔记:zabbix的安装

zabbix的安装为什么需要监控随着互联网公司业务不断增长,硬件规模不断扩大,作为SA我们需要清楚每一台服务器的状态(温度、CPU使用率、内存使用率、磁盘使用率等),如果使用人为的方式将会极大增加工作...
  • linux_player_c
  • linux_player_c
  • 2015年11月13日 14:30
  • 1681

斯坦福机器学习网易公开课笔记1

之前在coursera上看了Andrew Ng的机器学习课程,那个课程比较简明,适合对机器学习有一个整体的印象,但是很多细节的内容和推导都忽略了。现在想要了解机器学习更多,所以开始看Andrew Ng...
  • zhonglj0314
  • zhonglj0314
  • 2017年02月20日 09:57
  • 524

TCP-IP学习笔记-- 浅析TCP(1)

TCP的特点 TCP报文格式 TCP可靠数据传输机制数据序号和确认号机制 特点 TCP连接的建立与终止 建立连接三次握手 终止连接四次挥手 TCP的状态转换图 TCP的流量控制 工作原理 TCP拥塞控...
  • Yvonne8_5
  • Yvonne8_5
  • 2016年02月20日 23:27
  • 913

CUDA学习笔记(1)

CUDA从入门到精通(零):写在前面 在老板的要求下,本博主从2012年上高性能计算课程开始接触CUDA编程,随后将该技术应用到了实际项目中,使处理程序加速超过1K,可见基于图形显示...
  • u011534057
  • u011534057
  • 2016年05月06日 20:24
  • 1245

Angularjs 学习笔记(一)基础

1.简介: Angular JS (Angular.JS) 是一组用来开发Web页面的框架、模板以及数据绑定和丰富UI组件。它支持整个开发进程,提供web应用的架构,无需进行手工DOM操作。 Ang...
  • qq_25178609
  • qq_25178609
  • 2016年10月02日 16:13
  • 468

Mule ESB 学习笔记(1)

1. 简介 Mule ESB是一个基于Java的轻量级企业服务总线和集成平台,允许开发人员快速便利地连接多个应用,并支持应用间的数据交换。Mule ESB支持集成现有系统而无论其底层采用何种技术...
  • canlets
  • canlets
  • 2014年06月15日 21:36
  • 983

Mule ESB 学习笔记(2)

6. 配置模式 Mule 3.0版本提供了“pattern”的机制。Pattern总结了实际使用过程中的常见场景,以简化的服务配置方式提供。 6.1 简单服务模式(simple service p...
  • canlets
  • canlets
  • 2014年06月15日 21:50
  • 1161

【机器学习笔记1】Logistic回归总结

Logistic回归总结 作者:洞庭之子 微博:洞庭之子-Bing (2013年11月) PDF下载地址:http://download.csdn.net/detail/lewsn200...
  • achuo
  • achuo
  • 2016年04月15日 11:16
  • 1113

卷积神经网络(CNN)学习笔记1:基础入门

卷积神经网络(CNN)学习笔记1:基础入门
  • noter16
  • noter16
  • 2017年02月16日 15:00
  • 664
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:WTL学习笔记(1)
举报原因:
原因补充:

(最多只允许输入30个字)