问题一,我觉得没什么用起名字的特点而已
问题二,我记得是
问题三,CDC就是MFC中使用的设备上下文的一个类 MSDN中这样说:
The CDC class defines a class of device-context objects. The CDC object provides member functions for working with a device context, such as a display or printer, as well as members for working with a display context associated with the client area of a window.
问题四,HDC是设备上下文的句柄,是Windows实际使用的东西,而CDC是有MFC进行了封装的对象
实际上使用的还是HDC,就和CWnd于HWND的关系一样
问题五,好像只能调用类的构造函数,不能调用类的其他函数,就好比是说你使用的一个结构体一样,你只能给你的这种结构体类型的变量负值,但是不能给这种结构体类型本身负值一样。也就是说你只能调用对象的成员函数,而不能调用类的。

解决方案 »

  1.   

    1。
    一种书写方式,和编译有关。
    2。
    类中变量缺省情况下,是private。
    3。
    CDC是有关Windows DC的一个类,包括相关的操作方式、设备的选择等,
    像显示、打印都是通过这个类来完成。
    4。
    HDC是DC的句柄。
    5。
    CTestDlg dlg;
    DlgDC = CTestDlg.GetDC();
      

  2.   

    1. 下划线的用法是编译器缺省规定的
    2. 类是从结构发展演变而来的,结构的成员缺省都是public,而类的成员缺省都是private,主要目的是为了安全考虑,必须显示地定义成员为public
    3. CDC是对DC的操作的封装,C++嘛!
    4. 和楼上的回答一样,CDC中有一个成员变量就是HDC类型,所有操作都要用到这个句柄
    5. 必须定义类的实例后,才能调用类的成员函数
    CTestDlg testDlg(this);
    DlgDC = testDlg.GetDC();但有一种特例,就是类的静态成员函数,比如static void StaticFunc();
    可以用CTestDlg::staticFunc()来调用。
      

  3.   

        1.这是个特定的名,值为出现这个名的文件名,例如在a.cpp中用了这个名,值就是a.cpp,如果不加下划线的话,就不会这样了。
        其他的别人已回答了,我不说了.