猜:不知道是不是应该在OnDraw的最后把接口释放(release),:0

解决方案 »

  1.   

    加上pFont->Release()也还是这样呀!,高手呀!救命.....
      

  2.   

    返回的都是IFont**,而你用HFONT去接受它,就......
    我没试过
    pFont->get_hFont(&hFont);
    pFont->AddRefHfont(hFont);
    并且将hFont记为成员变量,当有新的值的时候用ReleaseHfont释放他
      

  3.   

    现在不是取得HFONT的问题,而是该属性是ATL中插入Active X中的默认属性,在VB的属性页中进行赋值时会产生错误:无效的属性值(Invlid Property Value),如何去掉这个错误?
      

  4.   

    你在VC中用一下,看看行不行,要是不行,就可能要派遣接口的说,
    因为VB这破玩意不支持指针,MS为它也不知操了多少心,加这个规定,加那个协议另外Font 用后可能真的要FREE一下,否则最多也就是系统字体变一下子,
      

  5.   

    在VB的Object Browser(或Viewer?记不清了)中可以看到,VB的FORM中用的字体对象是stdFont,而VC中用的是IFontDisp,虽然这两个在VB中都是Object,且都在一个Type Library中,但是通过#import那个.tlb文件得到的两个文件来看,stdFont是一个coclass,而IFontDisp是一个interface。说不定VC中的这个FONT属性真的和VB不兼容。
      

  6.   

    在VB的Object Browser(或Viewer?记不清了)中可以看到,VB的FORM中用的字体对象是stdFont,而VC中用的是IFontDisp,虽然这两个在VB中都是Object,且都在一个Type Library中,但是通过#import那个.tlb文件得到的两个文件来看,stdFont是一个coclass,而IFontDisp是一个interface。说不定VC中的这个FONT属性真的和VB不兼容。
      

  7.   

    找到解决方案了,简单之极,妈了,可困惑了N天,把它从上面移到下面就可了,可气的是我看了KnowLedge却看了N个小时,该死的Micorosoft,至于警告,得动用系统头文件,其它就加入一个关键字,dual就OK了.