象hDC这样的句柄都是封装在CDC类中的成员变量,用什么要看具体的函数原型。SDK都用句柄方式,MFC则多用类的实例指针,最终处理都是用句柄进行操作的,毕竟SDK是MFC的基础嘛。使用类的实例指针无非是面向对象的处理方法比较方便好用,SDK中除了传句柄,还要传一大堆相关的参数象坐标、颜色什么的,MFC只要建立好类的实例,传一个指针就可以访问了。

解决方案 »

  1.   

    基本的SDK编程是通过句柄访问的,但在C++中因为是面向对象的处理方法,常常需要将你或MFC自定义的变量和函数与Windows对象封装起来,此时,用指针比较方便,可以使Windows对象获得有效的继承与扩展。所以,我认为在MFC编程中大多数对象应以引用或指针来使用,保持一种统一的思路。
      

  2.   

    在MFC中,我们经常会看到这样的提示,你所得到的指针变量只是一个临时变量,不能够进行传递,遇到这种时候,就只能传递句柄了。传递指针虽然简单明了,但适用的范围窄,而句柄(象softsprite和creative两位大虾所说),深入到了SDK,自然范围广泛了。