【开源】【免积分下载】MFC缩略图预览类

阿源是少年 2015-08-01 02:50:34
加精
昨天有个同学提问要做一个MFC缩略图的预览,于是写了个,现开放下载,快来下载吧
【Features】
1.CImage封装,多图片格式支持,继承自CWnd
2.预览图片行数以及图片之间的间隙自适应到设置的宽度
3.支持滚动条
使用方法:CDialog之OnInitDialog中添加
CRect rcClient;
GetClientRect(rcClient);
// 创建缩略图盒子对象
CThumbnailBox* pThumbnailBox = new CThumbnailBox;
// 添加要阅览的图片
for(int i = 1; i <= 19; i++)
{
TCHAR lpszImageName[64] = {0};
_stprintf(lpszImageName, TEXT("image\\%d.jpg"), i);
pThumbnailBox->AddImage(lpszImageName);
}

// 创建缩略图盒子窗口
pThumbnailBox->Create(0, 0, rcClient.Width(), rcClient.Height(), this);


上截图:




下载地址:
http://download.csdn.net/detail/pcradio/8950871
...全文
3219 50 打赏 收藏 转发到动态 举报
写回复
用AI写文章
50 条回复
切换为时间正序
请发表友善的回复…
发表回复
Henry_2017 2017-11-18
  • 打赏
  • 举报
回复
您好,希望您能看到这条私信 我下载了您的 MFC缩略图滚动预览_VS2008 资源 在您的基础上我添加了一个Button,点击Button,然后增加新的略所图进去,滚动条没办法用。 我是新手,老师一定要用MFC做界面(哎...),融合您的代码到项目上,碰到这个问题两三天没解决,希望能得到您的帮助 BUTOON代码如下: void CThumbnailBoxDlg::OnBnClickedButton1() { CRect rcClient; GetClientRect(rcClient); CThumbnailBox* pThumbnailBox = new CThumbnailBox; for(int i = 1; i <= 38; i++) { TCHAR lpszImageName[64] = {0}; _stprintf(lpszImageName, TEXT("image\\%d.jpg"), i); pThumbnailBox->AddImage(lpszImageName); } pThumbnailBox->Create(0, 0, rcClient.Width(), rcClient.Height(), this); } 我是直接在您发布的这个demo上添加按钮做测试,发现一样滚动条不能用
xrqrenqiang 2016-11-05
  • 打赏
  • 举报
回复
菜鸟路过。哈哈哈
huangzhengyi499 2016-11-03
  • 打赏
  • 举报
回复
谢谢楼主分享,学习了。但是不知道怎么写响应
阿源是少年 2016-09-21
  • 打赏
  • 举报
回复
引用 46 楼 dingxz105090 的回复:
对了,可以确定是 int SetScrollPos(int nBar, int nPos, BOOL bRedraw = TRUE); 的问题了,第二个参数表面是int,实际最大应该只能到32767
确实会有问题,具体我没查,如果现在我重新来做这个控件,会是另一套更简单的实现算法。
凌乱哥 2016-08-09
  • 打赏
  • 举报
回复
对了,可以确定是 int SetScrollPos(int nBar, int nPos, BOOL bRedraw = TRUE); 的问题了,第二个参数表面是int,实际最大应该只能到32767
凌乱哥 2016-08-09
  • 打赏
  • 举报
回复
楼主,你这个Demo我下载了测试了一下,发现图片过多的话会有个bug

	CRect rcClient;
	GetClientRect(rcClient);
	CThumbnailBox* pThumbnailBox = new CThumbnailBox;
	for(int j = 0 ; j < 130 ; j ++)//这是我加的一层循环,别的代码丝毫未动
	{
		for(int i = 1; i <= 19; i++)
		{
			TCHAR lpszImageName[64] = {0};
			_stprintf(lpszImageName, TEXT("image\\%d.jpg"), i);
			pThumbnailBox->AddImage(lpszImageName);
		}
	}
	pThumbnailBox->Create(0, 0, rcClient.Width(), rcClient.Height(), this);
可以运行起来,问题就出现在拉动滚动条快到底的时候,界面不再滚动,而且松开鼠标后滚动条的滑块自动到最顶部了 我觉得可能是StretchBlt或者是滚动条的某个属性值越界了,有办法修改吗
tingtings324 2016-07-06
  • 打赏
  • 举报
回复
楼主 已经下载学习 但是怎么做点击响应呢
baidu_32143085 2016-07-04
  • 打赏
  • 举报
回复
我用的时候是把图片展示在一个ListCtrl控件中,但是垂直滚动条失效了,什么问题呢?跪求解答
thpbjdzr 2016-06-11
  • 打赏
  • 举报
回复
不错,来学习一下
少年阿七 2015-12-09
  • 打赏
  • 举报
回复
Mark
barry_2008 2015-08-13
  • 打赏
  • 举报
回复
好东西呀,感谢楼主的分享
moonclearner 2015-08-10
  • 打赏
  • 举报
回复
正在学习MFC 向你学习
阿源是少年 2015-08-07
  • 打赏
  • 举报
回复
,,
引用 37 楼 mfcing 的回复:
这年头了还在研究MFC,精神可贵,
好东西永远不会过时
疯狂-的-蜗牛 2015-08-06
  • 打赏
  • 举报
回复
这年头了还在研究MFC,精神可贵,
阿源是少年 2015-08-06
  • 打赏
  • 举报
回复
引用 35 楼 schlafenhamster 的回复:
多了一层“class CThumbnailBox : public CWnd” 不如·直接·在· 对话框·上· 简单
想过直接绑定Picture控件,滚动条那里没那么好处理,就直接CWnd了
schlafenhamster 2015-08-06
  • 打赏
  • 举报
回复
多了一层“class CThumbnailBox : public CWnd” 不如·直接·在· 对话框·上· 简单
zgl7903 2015-08-05
  • 打赏
  • 举报
回复
赵4老师 2015-08-05
  • 打赏
  • 举报
回复
果断下载研究!
tknet7 2015-08-04
  • 打赏
  • 举报
回复
下载搞搞看
lzx844 2015-08-04
  • 打赏
  • 举报
回复
就是看看,顶顶!!学习下。。。
加载更多回复(28)

15,979

社区成员

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

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