初级软件实作 - 星便笺 - 之二 - 富文本控件扩展

便笺的主体做好了,最近一直觉得缺点儿什么,决定改变便笺的开发方向,把便笺做成一个开放平台。

开放平台好呀,只是缺点儿什么。什么呢?好的文本控件。

我希望文本控件能实现的功能:

  • 纯正的文本控件
  • 文字随意排版
  • 支持文字链接
  • 支持图片插入
  • 支持gif图片
  • 支持图片链接

好滴~ 前面4个都不难,有解决方案,都是基于RichTextBox的。可是图片链接就特别棘手了。目测gif图片只能用rtf的object方式插入到RichTextBox中才能显示动画,可是这种方式插入的图片不响应鼠标事件,就是说,单击后没有任何事件被触发,包括选择事件、MouseDown事件都不响应,怎么办呢?只能祭出WinAPI啦

添加用户控件,继承RichTextBox,部分代码如下:

        /// <summary>
        /// 重绘
         /// </summary>
        /// <param name="m"></param>
        protected override void WndProc(ref Message m)
        {
            if (m.Msg == Win32.WM_PARENTNOTIFY)
            {
                if (m.WParam == (IntPtr)513/*WM_LBUTTONDOWN*/)
                {
                    Point p = Control.MousePosition;
                    p = this.PointToClient(p);
                    int Pos = this.GetCharIndexFromPosition(p);
                    //选择图片
                       //this.Select(Pos, 1);
                    //if (this.SelectionType == RichTextBoxSelectionTypes.Object)
                    //{
                    //    ...Do Something
                    //}
                }
            }
            base.WndProc(ref m);
        }

今天先写到这里吧,下次再更新哈,(*^__^*) 嘻嘻…… 研究出来了,好开心呀O(∩_∩)O哈哈~

posted @ 2013-04-28 00:42  斐儿不一般  阅读(178)  评论(0编辑  收藏  举报