解决方案 »

  1.   

    最简单的就是把所有表情都弄在一张bmp上,贴到对话框上,根据鼠标坐标点判断当前在哪个表情框内,在背景上画个框框。缺点就是在上面移动时选择的表情不会动。
    或者自己写个/找个可以贴gif的类,拖几十个控件上去。listctrl的ico模式自绘下不知道能不能加载gif格式的,可以试下。
      

  2.   

    唉,用脚后跟都能想明白的事情CRect mr[X][Y];在里面画图就可以了平时就画GIF的第一帧被选中(鼠标旋停)的就循环画所有帧
      

  3.   


    谢谢,你的回答,我已经做出来了!主要是开始以为用对话框的话可能没有killfocue,试了后才发现可以,看来以后得多去试试呀!非常感谢!!
      

  4.   

    这种东西实现的方法很多,只要实用就行,你可以使用CStatic控件,里面贴张图,鼠标移动到某个CStatic控件时,就播放gif图片,前段时间我写了一个CStatic控件,支持播放gif图片的,里面使用了定时器(不足之处),效果还可以,可以发给你用用,你可以改一下,让其支持鼠标移动事件。
      

  5.   

    我觉得你把所有的表情做成一张图,每个表情在图片中的坐标位置要固定好,而且每个方格的大小要一致,为了方便判断鼠标移动时判断,当鼠标移动时判断鼠标落在了那个方格上,然后在方格的位置上贴上一个我上面说的CStatic控件,播放当前选择的图片gif文件,这样就不用创建过多的控件
      

  6.   

    因为我不想放一个个控件,那样的话不太好管理,如果一个个放控件的话我感觉用CButton会比较好些。
    我前面实验的就是把CButton重绘,然后在里面把所以表情画出来,通过单击点来计算表情的ID。
    虽然表情画出来了,表情的ID也能得到,但是它无法显示在edit之上,所以很不好。像2L说的用对话框的话会好很多
      

  7.   

    因为我不想放一个个控件,那样的话不太好管理,如果一个个放控件的话我感觉用CButton会比较好些。
    我前面实验的就是把CButton重绘,然后在里面把所以表情画出来,通过单击点来计算表情的ID。
    虽然表情画出来了,表情的ID也能得到,但是它无法显示在edit之上,所以很不好。像2L说的用对话框的话会好很多CButton?如果表情很多,需要添加滚动条的话,到时你会发现使用CButton会很麻烦,个人建议,把所有的表情绘制到静态控件上,每绘制一个表情,把该表情的位置记录下,存放在一个CRect变量中,然后处理WM_MOUSEMOVE消息,判断鼠标移动到哪个CRect中,然后显示对应的gif图片,