200分求CListCtrl显示缩略图功能

hnzlk 2009-11-28 12:50:15
要求:1.只显示一行图片,可向后滚动,图片多的时候出现水平滚动条。
2.可随listctrl高度的变化,缩略图自动居中显示.

目前在不出现滚动条的情况下,也就是图片数量比较少的时候,已经实现如上功能。
...全文
245 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
xundeng 2009-12-03
  • 打赏
  • 举报
回复
设置ITEM位置之前用
this->SetRedraw(FALSE); 进行锁定,
所有的设置完成之后,再用this->SetRedraw(TRUE);进行解锁。
hnzlk 2009-11-30
  • 打赏
  • 举报
回复
顶!
hnzlk 2009-11-30
  • 打赏
  • 举报
回复
还有,如果在onpaint中,第一个item总是无法正确的绘出焦点,其实已经绘了,把其它窗口盖上去,再移开,就能看到。这是怎么回事呢?
hnzlk 2009-11-30
  • 打赏
  • 举报
回复
顶!
hnzlk 2009-11-30
  • 打赏
  • 举报
回复
就是显示出来的item位置不正确,也就是GetItemRect()的位置也不正确。可以下源码看看。
wwgddx 2009-11-30
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 hnzlk 的回复:]
我codeproject所有的关于listctrl的文章都看过了。如果用listctrl正常的显示,比如多行多例,好像是没有问题,如果只显示一行,而且图片比较多的话,用SetItemPosition(),Arrange()。。当出现滚动条的时候,似乎都不管用了。
其实显示缩略图也很简单,无非是用cimagelist绑定一下listctrl,在onpain或者oncustomdraw里面,GetItemRect()绘进行绘制,但我现在更重要的是,这个Rect不对,让我的item总是会居中显示,这里有些问题,不知道是不是我处理的不够好,还是忽略了某些小细节,希望得到牛人们的指点,感激不尽。注:没有滚动条的时候,显示完好。
[/Quote]

你的意思是GetItemRect()在有水平滚动条的时候得到的RECT不正确?就是这一个问题吧.
hnzlk 2009-11-30
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 m_s_d_n 的回复:]
没有代码,具体错误原因都不好说啦。

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

[/Quote]

http://www.hnzlk.com/down/Draw_Thumbnail.rar

源码已上传,还望高手们给分析分析!
M_S_D_N 2009-11-30
  • 打赏
  • 举报
回复
没有代码,具体错误原因都不好说啦。

[Quote=引用 6 楼 hnzlk 的回复:]
我codeproject所有的关于listctrl的文章都看过了。如果用listctrl正常的显示,比如多行多例,好像是没有问题,如果只显示一行,而且图片比较多的话,用SetItemPosition(),Arrange()。。当出现滚动条的时候,似乎都不管用了。
其实显示缩略图也很简单,无非是用cimagelist绑定一下listctrl,在onpain或者oncustomdraw里面,GetItemRect()绘进行绘制,但我现在更重要的是,这个Rect不对,让我的item总是会居中显示,这里有些问题,不知道是不是我处理的不够好,还是忽略了某些小细节,希望得到牛人们的指点,感激不尽。注:没有滚动条的时候,显示完好。
[/Quote]
dengzhixing 2009-11-30
  • 打赏
  • 举报
回复
顶起
hnzlk 2009-11-29
  • 打赏
  • 举报
回复
我codeproject所有的关于listctrl的文章都看过了。如果用listctrl正常的显示,比如多行多例,好像是没有问题,如果只显示一行,而且图片比较多的话,用SetItemPosition(),Arrange()。。当出现滚动条的时候,似乎都不管用了。
其实显示缩略图也很简单,无非是用cimagelist绑定一下listctrl,在onpain或者oncustomdraw里面,GetItemRect()绘进行绘制,但我现在更重要的是,这个Rect不对,让我的item总是会居中显示,这里有些问题,不知道是不是我处理的不够好,还是忽略了某些小细节,希望得到牛人们的指点,感激不尽。注:没有滚动条的时候,显示完好。
wfx_net 2009-11-28
  • 打赏
  • 举报
回复
reference to SetIconSpacing function.
  • 打赏
  • 举报
回复
http://www.codeproject.com/KB/list/
自己找找
xwsn007 2009-11-28
  • 打赏
  • 举报
回复
MARK,帮顶!
Dingnifei123 2009-11-28
  • 打赏
  • 举报
回复
http://www.codeproject.com/KB/combobox/ThumbsViewer.aspx
看看韩国鬼子写的这个,
应该可以满足你了~

:)
hnzlk 2009-11-28
  • 打赏
  • 举报
回复
顶!

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧