现在的位置: 首页 > 综合 > 正文

ATL: 理解窗口特征(Window Traits)

2013年12月02日 ⁄ 综合 ⁄ 共 817字 ⁄ 字号 评论关闭

理解窗口特征

         在创建一个ATL窗口对象时,窗口特征类提供了一种简单的方式来标准化窗口的风格。窗口特征被当成模板参数被CWindowImpl以及其它ATL窗口类所接受,从而在类的级别上为窗口提供缺省的窗口风格。

         如果一个窗口实例的创建者没有在调用创建函数时显示提供窗口风格,你还是可以使用一个特征类来确保窗口在创建时采用的窗口风格准确无误。你甚至还可以确保该窗口类的所有实例都采用某种特定的窗口风格,同时又允许每个实例采用不同的其它风格。

ATL窗口特征模板

         ATL提供了两种窗口特征模板,允许你使用它们的模板参数在编译时期设置缺省的窗口风格。

描述

CWinTraits

当你想要提供缺省的窗口风格时使用这个模板,它提供的窗口风格只在没有指定其它窗口风格时起作用。运行时提供的窗口风格比编译时设置的窗口风格优先级高。

CWinTraitsOR

当你想要让窗口类总保持某种风格时使用这个类。运行时提供的窗口风格与编译时设置的窗口风格通过二进制OR操作联合作用。

 

 自定义窗口特征

         少数情况下,仅仅依靠特化ATL提供的窗口特征模板是不够的,你可能需要创建自己的特征类。这并不是没可能,只要你创建一个能够实现下列两个静态函数的类就可以:

static DWORD GetWndStyle(DWORD dwStyle);

static DWORD GetWndExStyle(DWORD dwExStyle);

         每个函数都在运行时接到一些风格值(style value),函数利用它们产生一个新的风格值。如果你的窗口特征类被当作某个ATL窗口类的模板参数使用,传递给这些静态函数的风格值也会以风格参数的方式交给创建函数。

参见

其它资源

ATL窗口类

 

来源:http://msdn.microsoft.com/en-us/library/d9s0462h(v=VS.100).aspx

by btwsmile 

抱歉!评论已关闭.