(vb课程设计)RTF编辑器设计报告.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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)

skvdnd51 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档