初级软件实作 - 星便笺 - 之二 - 富文本控件扩展
便笺的主体做好了,最近一直觉得缺点儿什么,决定改变便笺的开发方向,把便笺做成一个开放平台。
开放平台好呀,只是缺点儿什么。什么呢?好的文本控件。
我希望文本控件能实现的功能:
- 纯正的文本控件
- 文字随意排版
- 支持文字链接
- 支持图片插入
- 支持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哈哈~