zoukankan      html  css  js  c++  java
  • 也谈QQ表情弹出框的制作

    会飞的鱼前段时间写了篇文章,介绍如何实现类似QQ表情对话框的功能,具体描述见文章《c# 类似于QQ表情弹出框功能的二种实现方法》。刚好最近我也有类似的需求,我刚开始的想法是在Panel中动态创建PictureBox来加载QQ表情,如:

          private void InitImageControl(int colCount, int rowCount)
            {
                for (int i = 0; i < rowCount; i++)
                {
                    for (int j = 0; j < colCount; j++)
                    {
                        PictureBox picBox = new PictureBox();
                        picBox.SizeMode = PictureBoxSizeMode.CenterImage;
                        picBox.Image = @"d:\qqface\1.gif"; //从文件中加载图片
                           Size controlSize = new Size(imgWidth, imgHeight);
                        picBox.Size = controlSize;
                        int controlLoctionX = controlSize.Width * j;
                        int controlLoctionY = controlSize.Height * i;
                        picBox.Location = new Point(controlLoctionX, controlLoctionY);
                        picBox.MouseHover += new EventHandler(picBox_MouseHover);
                        panel1.Controls.Add(picBox);
                    }
                }
            }
    
    这样实现的方式比较简单,但是速度却非常慢,于是就放弃了这个想法。
    突然想到,利用网页来加载图片,效率可能会高很多的(事实证明也是如此),于是考虑在Panel中加载个WebBrowser,然后动态的加载网页来实现。
    首先制作了类似QQ表情对话框展示效果的网页(代码下载),截图如下:
    image 
    由于代码比较简单,就直接贴代码了:
    加载QQ表情

    当网页加载完毕后,给分页链接注册事件

     
    分页事件
     
    这样就基本实现了QQ表情弹出框的需求了,最终截图如下:
    image image
     
    留下的问题:
     
    如何通过点击QQ表情向聊天对话框发送表情了?如果有人感兴趣,可以和我交流。源码下载

     PS:其实如果不用网页加载,直接把图像画在Panel上,也是可以行,效率也是很快,并且控制起来非常方便,过几天我也贴个代码。

     
  • 相关阅读:
    C语言 sprintf 函数 C语言零基础入门教程
    C语言 printf 函数 C语言零基础入门教程
    C语言 文件读写 fgets 函数 C语言零基础入门教程
    C语言 文件读写 fputs 函数 C语言零基础入门教程
    C语言 fprintf 函数 C语言零基础入门教程
    C语言 文件读写 fgetc 函数 C语言零基础入门教程
    C语言 文件读写 fputc 函数 C语言零基础入门教程
    C语言 strlen 函数 C语言零基础入门教程
    Brad Abrams关于Naming Conventions的演讲中涉及到的生词集解
    适配器模式
  • 原文地址:https://www.cnblogs.com/coding1016/p/1640874.html
Copyright © 2011-2022 走看看