QQ表情墙的制作方法

tanyufeng_521 2013-11-22 10:37:31
我想仿照QQ,做一个表情墙,也就是单击一个按钮,弹出表情墙,然后可以选中表情。但是找不到实现的方法,各位大牛有会的或者好的思路可以介绍下!!

样例图片
...全文
326 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2013-12-24
  • 打赏
  • 举报
回复
您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了疑难问题汇总帖 并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面界面版关于版主结帖工作的具体办法
_船长_ 2013-11-22
  • 打赏
  • 举报
回复
我觉得你把所有的表情做成一张图,每个表情在图片中的坐标位置要固定好,而且每个方格的大小要一致,为了方便判断鼠标移动时判断,当鼠标移动时判断鼠标落在了那个方格上,然后在方格的位置上贴上一个我上面说的CStatic控件,播放当前选择的图片gif文件,这样就不用创建过多的控件
_船长_ 2013-11-22
  • 打赏
  • 举报
回复
这种东西实现的方法很多,只要实用就行,你可以使用CStatic控件,里面贴张图,鼠标移动到某个CStatic控件时,就播放gif图片,前段时间我写了一个CStatic控件,支持播放gif图片的,里面使用了定时器(不足之处),效果还可以,可以发给你用用,你可以改一下,让其支持鼠标移动事件。
tanyufeng_521 2013-11-22
  • 打赏
  • 举报
回复
引用 5 楼 gz_qmc 的回复:
唉,用脚后跟都能想明白的事情 CRect mr[X][Y]; 在里面画图就可以了 平时就画GIF的第一帧 被选中(鼠标旋停)的就循环画所有帧
非常感谢你的分享,但是我对你的态度感觉非常的不满意,不要一上来就鄙视人。可能这真的是很低级低级的问题,但每一个人都是从菜鸟开始的,不要以为你很牛就可以鄙视菜鸟, 不要忘你了也是从菜鸟过来的。
tanyufeng_521 2013-11-22
  • 打赏
  • 举报
回复
引用 2 楼 dllg1988 的回复:
最简单的就是把所有表情都弄在一张bmp上,贴到对话框上,根据鼠标坐标点判断当前在哪个表情框内,在背景上画个框框。缺点就是在上面移动时选择的表情不会动。 或者自己写个/找个可以贴gif的类,拖几十个控件上去。listctrl的ico模式自绘下不知道能不能加载gif格式的,可以试下。
谢谢,你的回答,我已经做出来了!主要是开始以为用对话框的话可能没有killfocue,试了后才发现可以,看来以后得多去试试呀!非常感谢!!
gz_qmc 2013-11-22
  • 打赏
  • 举报
回复
唉,用脚后跟都能想明白的事情 CRect mr[X][Y]; 在里面画图就可以了 平时就画GIF的第一帧 被选中(鼠标旋停)的就循环画所有帧
tanyufeng_521 2013-11-22
  • 打赏
  • 举报
回复
引用 2 楼 dllg1988 的回复:
最简单的就是把所有表情都弄在一张bmp上,贴到对话框上,根据鼠标坐标点判断当前在哪个表情框内,在背景上画个框框。缺点就是在上面移动时选择的表情不会动。 或者自己写个/找个可以贴gif的类,拖几十个控件上去。listctrl的ico模式自绘下不知道能不能加载gif格式的,可以试下。
嗯,这种方法我试试!!
tanyufeng_521 2013-11-22
  • 打赏
  • 举报
回复
引用 1 楼 gz_qmc 的回复:
这也算问题?
呵呵,大菜鸟一个,如果有思路或方法,麻烦分享一下,谢谢
dllg1988 2013-11-22
  • 打赏
  • 举报
回复
最简单的就是把所有表情都弄在一张bmp上,贴到对话框上,根据鼠标坐标点判断当前在哪个表情框内,在背景上画个框框。缺点就是在上面移动时选择的表情不会动。 或者自己写个/找个可以贴gif的类,拖几十个控件上去。listctrl的ico模式自绘下不知道能不能加载gif格式的,可以试下。
gz_qmc 2013-11-22
  • 打赏
  • 举报
回复
这也算问题?
tanyufeng_521 2013-11-22
  • 打赏
  • 举报
回复
引用 16 楼 gz_qmc 的回复:
其实没怎么的 是他自己觉得被鄙视了 呵呵 小样,自尊心挺强的
好吧,看不出来很好这口呀,不过可惜我是男的!!
gz_qmc 2013-11-22
  • 打赏
  • 举报
回复
其实没怎么的 是他自己觉得被鄙视了 呵呵 小样,自尊心挺强的
gz_qmc 2013-11-22
  • 打赏
  • 举报
回复
调戏一下而已
_船长_ 2013-11-22
  • 打赏
  • 举报
回复
引用 10 楼 gz_qmc 的回复:
鄙视你不是因为你的技术菜 而是因为你的思维菜 我不信你就真想不明白原理 只是你不信自己, 甚至不动手用代码尝试实践自己的想法 除了不自信,还懒惰 你说不鄙视你鄙视谁
鹰哥,至于吗?太没气度了吧??
_船长_ 2013-11-22
  • 打赏
  • 举报
回复
引用 12 楼 tanyufeng_521 的回复:
[quote=引用 9 楼 jzycode 的回复:] 我觉得你把所有的表情做成一张图,每个表情在图片中的坐标位置要固定好,而且每个方格的大小要一致,为了方便判断鼠标移动时判断,当鼠标移动时判断鼠标落在了那个方格上,然后在方格的位置上贴上一个我上面说的CStatic控件,播放当前选择的图片gif文件,这样就不用创建过多的控件
因为我不想放一个个控件,那样的话不太好管理,如果一个个放控件的话我感觉用CButton会比较好些。 我前面实验的就是把CButton重绘,然后在里面把所以表情画出来,通过单击点来计算表情的ID。 虽然表情画出来了,表情的ID也能得到,但是它无法显示在edit之上,所以很不好。像2L说的用对话框的话会好很多[/quote] CButton?如果表情很多,需要添加滚动条的话,到时你会发现使用CButton会很麻烦,个人建议,把所有的表情绘制到静态控件上,每绘制一个表情,把该表情的位置记录下,存放在一个CRect变量中,然后处理WM_MOUSEMOVE消息,判断鼠标移动到哪个CRect中,然后显示对应的gif图片,
tanyufeng_521 2013-11-22
  • 打赏
  • 举报
回复
引用 9 楼 jzycode 的回复:
我觉得你把所有的表情做成一张图,每个表情在图片中的坐标位置要固定好,而且每个方格的大小要一致,为了方便判断鼠标移动时判断,当鼠标移动时判断鼠标落在了那个方格上,然后在方格的位置上贴上一个我上面说的CStatic控件,播放当前选择的图片gif文件,这样就不用创建过多的控件
因为我不想放一个个控件,那样的话不太好管理,如果一个个放控件的话我感觉用CButton会比较好些。 我前面实验的就是把CButton重绘,然后在里面把所以表情画出来,通过单击点来计算表情的ID。 虽然表情画出来了,表情的ID也能得到,但是它无法显示在edit之上,所以很不好。像2L说的用对话框的话会好很多
tanyufeng_521 2013-11-22
  • 打赏
  • 举报
回复
引用 10 楼 gz_qmc 的回复:
鄙视你不是因为你的技术菜 而是因为你的思维菜 我不信你就真想不明白原理 只是你不信自己, 甚至不动手用代码尝试实践自己的想法 除了不自信,还懒惰 你说不鄙视你鄙视谁
看来你很自以为是呀,你很牛是吧,你就知道我没有试过,你就知道我不自信,不要拿片面的去否定一个人。看你这种人就不是什么好人,不仅仅接收不了别人半点的建议,而且还会更加的变本加厉。
gz_qmc 2013-11-22
  • 打赏
  • 举报
回复
鄙视你不是因为你的技术菜 而是因为你的思维菜 我不信你就真想不明白原理 只是你不信自己, 甚至不动手用代码尝试实践自己的想法 除了不自信,还懒惰 你说不鄙视你鄙视谁

15,979

社区成员

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

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