1 IMPLEMENT_DYNAMIC是实现“运行时类型识别”宏,与之相对应的是DECLARE_DYNAMIC(声明“运行时类型识别”宏)。也就是说你在.CPP文件中如果看见有IMPLEMENT_DYNAMIC,则在.H文件中必定有DECLARE_DYNAMIC的声明。
DECLARE_DYNAMIC/DEClARE_DYNAMIC是为了确定运行时对象属于哪一个类而定义的宏。
DEClARE_DYNCREATE/IMPLEMENT_DYNCREATE是为了“动态创建"类的实例而定义的宏。new可以用来创建对象,但不是动态的。比如说,你要在程序中实现根据拥护输入的类名来创建类的实例,下面的做法是通不过的:
char szClassName[60];
cin >> szClassName;
CObject* pOb=new szClassName; //通不过
这里就要用到DEClARE_DYNCREATE/IMPLEMENT_DYNCREATE定义的功能了。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/52yyp/archive/2009/04/02/4042942.aspx
2 用InvalidateRect(NULL);可以刷新整个对话框,但是我知道对话框中一个文本框的ID:ID_STATIC1,和控件名m_static1,应该怎么刷新该文本框(不刷新整个对话框)?
this.InvalidateRect(m_static1.GetClientRect(&rect),TRUE);
3 POSITION是一个指针,指向空的结构(以后还可以强制转换)
4 在Rational Rose中过程如下:
Tools->visual c++->Update model from code...
Next之后选择蓝颜色的Add a VC++ component -Crl+A
之后你自己肯定知道怎么做了吧?
假如dsw已经有了的话就选择Exist否则就根据需要选择
祝你成功^_^