ATL与WTL中CString的使用, 利用ATLCString获得窗口的文字.
2009-10-21 20:46
288 查看
http://hi.baidu.com/icexile/blog/item/2c698efdfd653a1009244dd8.html
WTL提供的CString类在ATL中也提供了相同的类后变得有点鸡肋,并且使用WTL::CString类后,经常会出现标题所示的编译错误(不能从“WTL::CString”转换为“ATL::CSimpleString &”的问题)。
实际上ATL不仅在<atlstr.h>中提供了CString类,还在<atltypes.h>中提供了CPoint、CSize和CRect类,因此,WTL中提供的同名类变得可有可无。我认为还是用ATL中的类会好一些,毕竟WTL没有文档嘛。
因此,应该在工程头文件中包含任何WTL头文件前定义以下两行:
// 一定要注意下面的顺序
#define _WTL_NO_CSTRING
#define _WTL_NO_WTYPES
典型的声明顺序应该这样:
#include <atlbase.h>
#include <atlstr.h>
#include <atltypes.h>
#include <atlapp.h>
extern CAppModule _Module;
#include <atlwin.h>
#include <atlcrack.h>
#include <atlsplit.h>
#include <atlframe.h>
#include <atlgdi.h>
#include <atlctrls.h>
#include <atlctrlx.h>
#include <atlmisc.h>
#include <......等等>
// 下面是获得控件文字的代码
CString strTemp(TEXT(""));
m_wndEdit.GetWindowText(strTemp);
::MessageBox(m_hWnd, strTemp, TEXT("编辑框的内容"), MB_OK);
return 0;
WTL提供的CString类在ATL中也提供了相同的类后变得有点鸡肋,并且使用WTL::CString类后,经常会出现标题所示的编译错误(不能从“WTL::CString”转换为“ATL::CSimpleString &”的问题)。
实际上ATL不仅在<atlstr.h>中提供了CString类,还在<atltypes.h>中提供了CPoint、CSize和CRect类,因此,WTL中提供的同名类变得可有可无。我认为还是用ATL中的类会好一些,毕竟WTL没有文档嘛。
因此,应该在工程头文件中包含任何WTL头文件前定义以下两行:
// 一定要注意下面的顺序
#define _WTL_NO_CSTRING
#define _WTL_NO_WTYPES
典型的声明顺序应该这样:
#include <atlbase.h>
#include <atlstr.h>
#include <atltypes.h>
#include <atlapp.h>
extern CAppModule _Module;
#include <atlwin.h>
#include <atlcrack.h>
#include <atlsplit.h>
#include <atlframe.h>
#include <atlgdi.h>
#include <atlctrls.h>
#include <atlctrlx.h>
#include <atlmisc.h>
#include <......等等>
// 下面是获得控件文字的代码
CString strTemp(TEXT(""));
m_wndEdit.GetWindowText(strTemp);
::MessageBox(m_hWnd, strTemp, TEXT("编辑框的内容"), MB_OK);
return 0;
相关文章推荐
- ATL与WTL中CString的使用, 利用ATLCString获得窗口的文字.
- ATL 与WTL使用CString 的文件声明
- [ATL/WTL]_[中级]_[使用GDIPlus剪切和缩放图片]
- ATL、MFC、WTL CString 的今生前世
- 一种在注入进程中使用WTL创建无焦点不在任务栏出现“吸附”窗口的方法和思路
- WTL下使用CString
- WTL\MFC\ATL CSTRING的前世今生
- [ATL/WTL]_[初级]_[窗口如何实现WM_MOUSELEAVE和WM_MOUSEHOVER]
- WTL:如何利用滚动窗口ScrollWnd查看图片Image
- 如何获得窗口句柄(FindWindow函数的使用)
- 使用WTL+OGRE编写3D程序(4) - 多窗口的渲染
- 使用ATL来写个简单的窗口程序
- [ATL/WTL]_[中级]_[使用GDIPlus剪切和缩放图片]
- 【转】剖析ATL\WTL\CSTRING的实现
- ATL、MFC、WTL CString 的今生前世
- [ATL/WTL]_[初级]_[窗口如何实现WM_MOUSELEAVE和WM_MOUSEHOVER]
- ATL中使用CString
- WTL使用ATL的CImage
- VisualFC使用 - 处理WTL窗口消息
- 经过多次强攻之后,赫柏带领的军团不仅没能击败鲁卡斯,反而被鲁卡斯打得七零八落,赫柏终于体会到了高阶天之驱逐者的强大实力。 不过,赫柏最终还是找到了鲁卡斯的致命弱点,他发现鲁卡斯喜欢收集上古卷轴,因为上古卷轴能够让鲁卡斯获得神秘之力。 卢卡斯决定使用上古卷轴将卢卡斯引诱到绝域之门,利用绝域之门的力量消灭卢卡斯。 赫柏注意到卢卡斯喜欢收集不同的卷轴,如果总是捡到相同的上古卷轴,它的兴趣就会逐渐降低。