要求:1.只显示一行图片,可向后滚动,图片多的时候出现水平滚动条。
      2.可随listctrl高度的变化,缩略图自动居中显示.目前在不出现滚动条的情况下,也就是图片数量比较少的时候,已经实现如上功能。

解决方案 »

  1.   

    reference to SetIconSpacing function.
      

  2.   

    http://www.codeproject.com/KB/combobox/ThumbsViewer.aspx
    看看韩国鬼子写的这个,
    应该可以满足你了~:)
      

  3.   

    http://www.codeproject.com/KB/list/
    自己找找
      

  4.   

    我codeproject所有的关于listctrl的文章都看过了。如果用listctrl正常的显示,比如多行多例,好像是没有问题,如果只显示一行,而且图片比较多的话,用SetItemPosition(),Arrange()。。当出现滚动条的时候,似乎都不管用了。
    其实显示缩略图也很简单,无非是用cimagelist绑定一下listctrl,在onpain或者oncustomdraw里面,GetItemRect()绘进行绘制,但我现在更重要的是,这个Rect不对,让我的item总是会居中显示,这里有些问题,不知道是不是我处理的不够好,还是忽略了某些小细节,希望得到牛人们的指点,感激不尽。注:没有滚动条的时候,显示完好。
      

  5.   


    http://www.hnzlk.com/down/Draw_Thumbnail.rar源码已上传,还望高手们给分析分析!
      

  6.   


    你的意思是GetItemRect()在有水平滚动条的时候得到的RECT不正确?就是这一个问题吧.
      

  7.   

       就是显示出来的item位置不正确,也就是GetItemRect()的位置也不正确。可以下源码看看。
      

  8.   

      还有,如果在onpaint中,第一个item总是无法正确的绘出焦点,其实已经绘了,把其它窗口盖上去,再移开,就能看到。这是怎么回事呢?
      

  9.   

    设置ITEM位置之前用 
    this->SetRedraw(FALSE); 进行锁定, 
    所有的设置完成之后,再用this->SetRedraw(TRUE);进行解锁。