你知道为什么插排上既有三角插座,也有两脚插座吗?并不是功能有什么不同,而是可以用在不同的场合下。
对应到函数,那么就是为了适应不同的接口,方便外部调用,内部处理没有什么区别。
如果你有一个HPEN对象,那么你可以直接用SelectObject选入;如果你有一个CPen对象,也可以直接用SelectObject选入。
好处就是我不需要用一个HPEN对象,先生成一个CPen对象后再调用SelectObject了。
麻烦了自己,方便了别人。连续调用SelectObject,只要你的句柄对象不丢失或被改变,及时释放就没有什么问题。

解决方案 »

  1.   

    你第二、第三种方式中的pOldPen是什么类型?
    还是CPen*么?
    编译不抱错?
      

  2.   

    HPEN    pOldPen
    编译不报错 VS2005+PB6.0环境下
      

  3.   

    HPEN    pOldPen
    编译不报错 VS2005+PB6.0环境下
    不好意思
    没看清
    如果是HPEN那是对的
    2、3其实是一样的
    不过是SelectObject的多态
    兼容不同的参数而已
    然后是用句柄操作的
    即便是第一种方法
    其实质也是通过句柄操作的
    只不过这个过程被封装了
      

  4.   

    HPEN    pOldPen
    编译不报错 VS2005+PB6.0环境下
    不好意思
    没看清
    如果是HPEN那是对的
    2、3其实是一样的
    不过是SelectObject的多态
    兼容不同的参数而已
    然后是用句柄操作的
    即便是第一种方法
    其实质也是通过句柄操作的
    只不过这个过程被封装了
    谢谢你的耐心解答 辛苦两位版主了 想问的已经明白了