- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
(vb课程设计)RTF编辑器设计报告
RTF编辑器设计报告
学院:材料学院 班级:材料074 学号:072027 姓名:王锦禾 成绩:
一、设计思路
1.要达到的目的
(1)有功能全面的工具条(包含字体字号颜色对其等相关操作)
(2)有一个状态条,可显示总行数,当前行数,当前列数,CAPS、NUM、INS状态,日期时间
(3)编辑区能够自动适应窗口的大小,窗口可以最大化和最小化
(4)支持打开、保存TXT文件和RTF文件的功能,有修改退出时提示是否保存。
(5)通过系统剪贴板支持对文字的常用编辑操作(删除、剪切、复制、粘贴)。
(6)可以插入和编辑图片
(7)可以设置文字的字体、字号、字形及色彩,能够设置段落的对齐方式(左中右)。
(8)支持文本的查找操作,能够设置查找选项(整字匹配,区分大小写)。
(9)光标移动或者选择内容时,工具条上的相应按钮能自动反映当前位置内容的属性
(10)实现与WORD类似的强力查找和替换功能。
(11)有较完善的菜单栏,可插入日期和时间
2.关键问题的解决
①插入图片的问题:通过对剪切板的调用
②行数与列数的统计:见相关代码
③查找与替换:通过richtextbox的find语句
二、模块之间的调用关系,或程序流程图
三、部分程序关键源代码及注释
行列统计:
Const EM_GETSEL = &HB0
Const EM_LINEFROMCHAR = &HC9
Const EM_LINEINDEX = &HBB
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Sub GetCaretPos(ByVal TextHwnd As Long, LineNo As Long, ColNo As Long)
Dim I As Long, j As Long
Dim lParam As Long, wParam As Long
Dim k As Long
'首先向状态来传递EM_GETSEL消息以获取从起始位置到
'光标所在位置的字符数
I = SendMessage(TextHwnd, EM_GETSEL, wParam, lParam)
j = I / 2 ^ 16
'再向状态栏传递EM_LINEFROMCHAR消息根据获得的字符
'数确定光标以获取所在行数
LineNo = SendMessage(TextHwnd, EM_LINEFROMCHAR, j, 0)
LineNo = LineNo + 1
'向状态栏传递EM_LINEINDEX消息以获取所在列数
k = SendMessage(TextHwnd, EM_LINEINDEX, -1, 0)
ColNo = j - k + 1
End Sub
插入图片:
CommonDialog1.Filter = "图片(*.bmp;*.jpg)|*.bmp;*.jpg"
CommonDialog1.ShowOpen
Clipboard.Clear
Clipboard.SetData LoadPicture(CommonDialog1.FileName)
RichTextBox1.SetFocus
SendKeys "^v"
查找与替换:
Dim a As Integer, c As Integer
Static a1 As Integer
a = Form1.RichTextBox1.Find(Text1.Text, a1, , b)
If a <> -1 Then
a1 = a + Len(Text1.Text)
MsgBox "字符 " + Text1.Text + " 是第 " + CStr(a1) + "个"
b = MsgBox("是否替换?", vbYesNoCancel, "替换?")
If b = vbYes Then
Form1.RichTextBox1.Text = Replace(Form1.RichTextBox1.Text, Text1.Text, Text2.Text)
ElseIf b = vbNo Then
GoTo h:
End If
Else
MsgBox "没找到"
h: End If
四、设计方案的完善及目前存在的问题
1.设计方案要完善的地方
①不能完成自动存盘的功能
②由于设计要求限制,无法完成字体颜色的任意变换
2. 目前存在的问题
①对于已保存的文件重复保存的问题
五、本次设计的收获及心得体会
虽然设计的算
文档评论(0)