#pragma once#define STR_CLASS_NAME _T("CSignalLampCtrl")问题一:“_T”是什么意思???
// CSignalLampCtrlclass CSignalLampCtrl : public CWnd
{
DECLARE_DYNAMIC(CSignalLampCtrl)
问题二:“DECLARE_DYNAMIC”是一个“宏”,“宏”后面跟类名,这是一个什么意思呢???
enum StateType{Normal, Warning, Disable}; int nIDBitmap;
public:
CSignalLampCtrl();
virtual ~CSignalLampCtrl();
问题三:“~”表示什么???
void RegisterCtrlClass();
void SetState(StateType nState);protected:
virtual void PreSubclassWindow();public:
afx_msg void OnPaint();
问题四:“afx_msg”这是什么意思,怎么“宏”可以像“prive public protected”一样来声明方法???
DECLARE_MESSAGE_MAP()
问题五:“DECLARE_MESSAGE_MAP”这样声明一个“宏”的作用是什么???
};
// CSignalLampCtrlclass CSignalLampCtrl : public CWnd
{
DECLARE_DYNAMIC(CSignalLampCtrl)
问题二:“DECLARE_DYNAMIC”是一个“宏”,“宏”后面跟类名,这是一个什么意思呢???
enum StateType{Normal, Warning, Disable}; int nIDBitmap;
public:
CSignalLampCtrl();
virtual ~CSignalLampCtrl();
问题三:“~”表示什么???
void RegisterCtrlClass();
void SetState(StateType nState);protected:
virtual void PreSubclassWindow();public:
afx_msg void OnPaint();
问题四:“afx_msg”这是什么意思,怎么“宏”可以像“prive public protected”一样来声明方法???
DECLARE_MESSAGE_MAP()
问题五:“DECLARE_MESSAGE_MAP”这样声明一个“宏”的作用是什么???
};
解决方案 »
- 回调函数是一个什么概念,谁能通俗的讲讲?
- 新人没分,请教个问题,有关windows api参数传递指针和地址的问题,谢谢
- 点击CSplitterWnd如何实现隐藏左视图?
- 关于创建控制台
- 一些c++基本问题。
- 如何去掉CTreeCtrl控件的滚动条?
- RichEdit控件如何载入文件
- 如果在图片上传前在本地做缩略和加水印?比如ACTIVEX?
- win7下 使用ddraw显示YUV数据,系统配色方案总会改为win7 basic
- 如何把一个图片假如到sql server数据库(asp)
- 用ADO的GetChunk读取mysql数据库中的blob字段出现“在此环境中不允许操作”
- 新手关于ftp的一些问题?
#define _T(x) L##x;
#else
#define _T(x) x;
#endif
后面的看《深入浅出MFC》
2. DECLARE_DYNAMIC(CSignalLampCtrl), Go to definition看宏的定义
3. ~表析构
4. afx_msg是宏,实际上定义的是空,就是起一个标示的作用,你可以去掉afx_msg
5. Declares that the class defines a message map. Each CCmdTarget-derived class in your program must provide a message map to handle messages.
再看一个实例,然后快速开发出一个“ActiveX”控件,没有时间深入学习“MFC”了,不过小弟有C++基础的。
为什么呢?是不是MFC为了方便用户的使用,把一系列的类和方法定义为了“宏”???
//呵呵,不懂楼主看得懂这几行没有!我来说一下吧!
这几行宏的定义涉及到Unicode编码和ASCII编码的问题,
如果楼主看过Unicode编码和ASCII编码方面的文章,
就会豁然开朗了。尤其是在Windows 编程中,_T()和TEXT()宏的使用,更是频繁,
为什么要用宏呢?呵呵,这是为了方便程序的移植而做的!你的程序可以编绎成ASCII版的,也可以编绎成Unicode版的,
如果你不想改代码从而实现上面的需求,用宏是最好的选择了!...在Windows下编程,建议楼主先好好理解一下ASCII和UNICODE,这样对编程大有好处!
你可以看一下一些C++的书
比如深入浅出MFC等
C++基础对于理解MFC那一套机制不太够