WTL FAQ(不断添加中)
来源:互联网 发布:php好学么 编辑:程序博客网 时间:2024/05/20 23:02
FAQ1: 如果你用WTL7.5和VC6.0/ATL3.0,并且定义了_ATL_STATIC_REGISTRY。在编译时你会
得到提示“ambiguous symbol ATL”的错误。因为定义_ATL_STATIC_REGISTRY将使
atlbase.h文件内包含statreg.h文件。而statreg.h文件内声明了另一个ATL名字空间
造成冲突。要解决此问题可以把
#include <atlbase.h>
改为
#define ATL ATLFIX
#include <atlbase.h>
#undef ATL
namespace ATL = ::ATLFIX;
FAQ2: 如何让一个模板类来处理某一类窗口消息
例,class CACComboBox : public CWindowImpl<CACComboBox,CComboBox>
CACComboBox是一个组合框模板类,现在设计另一模板类专门处理组合框的WM_PAINT消息
这样做的好处有利于控件的界面由类来组合,卸换。
步骤:
1、 声明一模板类,必须派生自CmessageMap,可以由模板类参数来决定界面的效果
如:template <class T, COLORREF t_crFrameolor = RGB(172,168,153) , UINT t_uType = 1>
class CComboBoxFrameT : public CmessageMap
t_crFrameColor是组合框边框颜色,t_utype是组合框皮肤的效果
2、 声明BEGIN_MSG_MAP/ END_MSG_MAP()宏
3、 宏内添加MSG_WM_PAINT( OnPaint )宏处理WM_PAINT消息
4、 声明定义消息处理函数:OnPaint
5、 窗口类中派生项添加:public CComboBoxFrameT<CACComboBox>
6、 在窗口类中添加CHAIN_MSG_MAP(CComboBoxFrameT<CACComboBox>)宏,包含CcomboBoxFrame
的消息处理。
7、 CcomboBoxFrameT内中要使用窗口类时:T* pT = static_cast<T*>(this);
FAQ3: 控件如何使用消息反射
步骤:
1、 在能收到通知消息的窗口的消息宏中添加REFLECT_NOTIFICATIONS(),窗口就会把没处理的
的通知消息反射给控件。
2、 在控件的消息宏或消息链中添加 REFLECTED_COMMAND_CODE_HANDLER_EX等列系宏,
该类宏还有REFLECTED_NOTIFY_HANDLER_EX,REFLECTED_NOTIFY_ID_HANDLER_EX,
REFLECTED_NOTIFY_CODE_HANDLER_EX,等多个宏,定义在atlcrack.h中
- WTL FAQ(不断添加中)
- FAQ整理(不断添加中)
- FAQ整理(不断添加中)
- astgo常见问题(FAQ)知识库(不断整理更新中...)
- Hibernate事务管理读书笔记(不断添加中)
- STL用法点滴(不断添加中)
- mysql常用命令(不断添加中...)
- c#笔记(不断添加中)
- excel技巧总结(不断添加中........)
- OSGi命令(不断添加中)
- WTL对话框中添加背景图
- 圆(不断添加)
- 阿斯特astgo的常见问题(FAQ)知识库_不断整理更新中
- 关于JAVA设计模式(不断添加中...)
- 常用Java类型转化小技巧(不断添加中)
- linux查看系统信息命令大全(不断添加中......)
- Linux内核基础知识汇总(不断添加中...)
- Linux的常用命令1---网络相关(不断添加中)
- 软件项目计划如何编写
- NTLM验证中LM散列和NT散列的计算
- STL用法点滴(不断添加中)
- 常用正则表达式
- 我遇到的问题汇总
- WTL FAQ(不断添加中)
- C#中TreeView组件使用方法初步
- 使每个链接的title显示为自己url
- XMLHttpRequest对象简介
- URLRewriter问题,使用URL重写的最简单方法
- Hibernate的Query的三种方法比较
- 叶枯过
- c#中使用Enter代替TAB键的方法
- 基于SMPP协议的GSM短消息增值业务接口设计与实现