none
CTreeCtrl使用 ImageList,RELEASE 版本正确显示,DEBUG版本无图像。 RRS feed

  • 问题

  • CTreeCtrl使用 ImageList,RELEASE 版本正确显示,DEBUG版本无图像,包括状态图像。
    不知道为什么,百思不得其解。
    请不吝指教!


    2008年9月23日 13:14

答案

  • 你看一下。你两个版本引用的公共控件库的版本是不是一样的,就是COMCTL32.DLL这个的版本是不是一样的,有一个版本的在一些操作系统下(好像是xp)使用imagelist的时候有问题,就是什么也看不到,具体哪个版本记不得了

    2008年10月7日 23:51

全部回复

  • 应该图片路径问题吧
    2008年9月23日 13:27
    版主
  • 位图在资源中,所以应该不是图片路径的问题。
    2008年9月23日 13:36
  •  

    问题出在代码中,所以,贴代码上来看看吧。
    2008年9月25日 4:58
  • 你看一下。你两个版本引用的公共控件库的版本是不是一样的,就是COMCTL32.DLL这个的版本是不是一样的,有一个版本的在一些操作系统下(好像是xp)使用imagelist的时候有问题,就是什么也看不到,具体哪个版本记不得了

    2008年10月7日 23:51
  • 感谢,你说得很对,就是这个问题。

    我受你的启发,用depends看release版本和debug版本,它们的
    COMCTL32.DLL不是同一个。但是我不知道是哪里设置使用COMCTL32.DLL的类型。在debug版本中,我把manifest设为不嵌入的,编译完成后,就好了。
    2008年10月9日 3:57
  • 可以指定COMCTL32.DLL的版本,就在应用程序的manifest文件里面可以指定COMCTL32.DLL的版本(比如给vc6的公共控件显示为xp的界面效果,就是通过指定COMCTL32.DLL的版本实现的),具体的代码你可以去查找一下

    2008年10月9日 4:04
  • 应用程序的manifest文件是编译时自动生成的,怎么指定呢?编辑manifest文件后,重新编译一下不就又没有了吗?
    2008年10月9日 9:07
  • 可以的,实在不行,你可以把他当做资源添加到应用程序里面。具体的方法,你可以取msdn找

    2008年10月9日 9:11
  • 好的,谢谢!
    2008年10月10日 5:06