永发信息网

VB高手帮忙看看代码

答案:1  悬赏:0  手机版
解决时间 2021-05-07 12:52

Dim Changed As Boolean
Dim filename$
Dim Button As Integer
Private Const EM_UNDO = &HC7
Private Const EM_CANUNDO = &HC6
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
Private Sub cd1_exit_Click()
End
End Sub

Private Sub cd1_lingsave_Click() '另存为
Dim filename1$
CommonDialog1.InitDir = App.Path
CommonDialog1.Filter = "文本文件|*.txt"
CommonDialog1.ShowSave
filename1 = CommonDialog1.filename
If filename1 <> filename And filename1 <> "" Then
filename = filename1
Open filename For Output As #1
Print #1, Text1
Close #1
Changed = False
Form1.Caption = filename
End If
End Sub

Private Sub cd1_new_Click()
Dim k%
If Changed Then
k = MsgBox("文本已经改变,是否保存", vbYesNoCancel + vbExclamation, "记事本提示")
Select Case k
Case 6
Call cd1_save_Click
Text1 = ""
Case 7
Text1 = ""
End Select
Else
Text1 = ""
End If
End Sub

Private Sub cd1_open_Click() '打开
On Error GoTo CheclError
If Changed = True Then
Button = MsgBox(Form1.Caption + "file has changed," + Chr(13) + "do you save?", vbYesNoCancel + vbExclamation, "记事本提示")
If Button = vbYes Then
cd1_save_Click
End If
End If

CommonDialog1.Flags = cdlOFNPathMustExist
CommonDialog1.Filter = "(文本文件)|*.txt"
CommonDialog1.ShowOpen
filename = CommonDialog1.filename
If filename <> "" Then
Dim str$
Form1.Caption = filename
Open filename For Input As #1
Input #1, str
Text1 = str
Close #1
Changed = False
End If
Exit Sub
CheclError:
If Err.Number = 53 Then
MsgBox "文件不存在"
Form1.Caption = "未命名-记事本文件"

Else
MsgBox "错误提示:" & Err.Description
End If
End Sub

Private Sub cd1_save_Click() '保存
If Changed Then
If filename = "" Then
CommonDialog1.Flags = cdlOFNNoChangeDir
CommonDialog1.InitDir = App.Path
CommonDialog1.Filter = "文本文件|*.txt|所有文件|*.*"
CommonDialog1.ShowSave
filename = CommonDialog1.filename
Form1.Caption = filename
Else
Open filename For Output As #1
Print #1, Text1
Changed = False
Close #1
End If
End If
End Sub

Private Sub cd2_all_Click() '全选
Text1.SelStart = 0
Text1.SelLength = Len(Text1)
End Sub

Private Sub cd2_cexiao_Click() '撤销

Call SendMessage(Text1.hwnd, &HC7, 0, 0)
End Sub

Private Sub cd2_find_Click()
sFind = InputBox("请输入要查找的字、词:", "查找内容", sFind)
RichTextBox1.Find sFind
End Sub

Private Sub cd2_findnext_Click()
RichTextBox1.SelStart = RichTextBox1.SelStart + RichTextBox1.SelLength + 1
RichTextBox1.Find sFind, , Len(RichTextBox1)
End Sub

Private Sub cd2_fuzhi_Click() '复制
Clipboard.SetText Text1.SelText
End Sub

Private Sub cd2_jianqie_Click() '剪切
Dim str1$, str2$
Dim len1&, len2&
len2 = Text1.SelStart
Clipboard.SetText Text1.SelText '这个地方应该是SETTEXT
str1 = Mid(Text1, 1, Text1.SelStart)
len1 = Len(str1)
str2 = Right(Text1, Len(Text1) - len1 - Text1.SelLength)
Text1 = str1 + str2
Text1.SelStart = len2
End Sub

Private Sub cd2_shanchu_Click() '删除
Text1 = Replace(Text1.Text, Text1.SelText, "")
End Sub

Private Sub cd2_zhantie_Click() '粘贴(使光标显示在复制后的地方)
p = Text1.SelStart
Text1.Text = Left(Text1.Text, p) + Clipboard.GetText + Right(Text1.Text, Len(Text1.Text) - p - Text1.SelLength)
Text1.SelStart = p + Len(Clipboard.GetText)
Text1.SetFocus
End Sub
Private Sub cd3_font_Click() '字体
CommonDialog1.CancelError = True '将 Cancel 设置成 True。
On Error GoTo ErrHandler
CommonDialog1.Flags = cdlCFBoth Or cdlCFEffects '设置 Flags 属性。
CommonDialog1.ShowFont '显示“字体”对话框。
Text1.Font.Name = CommonDialog1.FontName '根据用户的选择来设置文本属性。
Text1.Font.Size = CommonDialog1.FontSize
Text1.Font.Bold = CommonDialog1.FontBold
Text1.Font.Italic = CommonDialog1.FontItalic
Text1.Font.Underline = CommonDialog1.FontUnderline
Text1.FontStrikethru = CommonDialog1.FontStrikethru
Text1.ForeColor = CommonDialog1.Color
Exit Sub
ErrHandler: '用户按了“取消”按钮。
Exit Sub
End Sub

Private Sub Form_Resize() '使窗体和text大小一致
Text1.Top = ScaleTop
Text1.Left = ScaleLeft
Text1.Width = ScaleWidth
Text1.Height = ScaleHeight
End Sub
Private Sub Form_Load() '设置窗体和菜单初始值
Form1.Caption = "未命名-记事本文件"
Changed = False
filename = ""
cd2_jianqie.Enabled = False
cd2_cexiao.Enabled = False
cd2_fuzhi.Enabled = False
cd2_shanchu.Enabled = False
If Clipboard.GetText() <> "" Then
cd2_zhantie.Enabled = True
Else
cd2_zhantie.Enabled = False
End If
Changed = False
End Sub
Private Sub cd2_Click() '改变编辑里的按钮状态
If Text1.SelLength <> 0 Then
cd2_jianqie.Enabled = True
cd2_shanchu.Enabled = True
cd2_fuzhi.Enabled = True
Else
cd2_jianqie.Enabled = False
cd2_shanchu.Enabled = False
cd2_fuzhi.Enabled = False
End If
If Clipboard.GetText <> "" Then
cd2_zhantie.Enabled = True
Else
cd2_zhantie.Enabled = False
End If
End Sub

Private Sub Text1_Change()
If Changed = False Then
Changed = True
End If
End Sub

高手们帮忙看看我做了个记事本,但是我的撤销不激活~~

最佳答案

你是想完成撤消的操作吗?


SendMessage(Text1.hwnd, &HC7, 0, 0) ,&HC7的常量是什么意思,撤消的常量为


Private Const WM_UNDO = &H304


应该是你的撤消常量写错了。


SendMessage Text1.hwnd, WM_UNDO, 0, 0


在VB6.0下测试成功

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
梦幻西游自己做房子要多少钱?
高压锅蒸米饭怎么用,智能电压力锅蒸米饭的时
韩雪个人资料及档案?
喜来缘饭店在哪里啊,我有事要去这个地方
我家电脑中了木马怎么办?
Vae唱歌好听还是Jay好听?
大话2成品满骨头鱼怪怎样练比较好?
啊不厌的下一句,从善如流的后一句是什么
今天谁还有赠送 游戏人生 的权限、送我个 谢
香港益安宁是真药吗?是一定在香港才能买的么
刚敷完面膜可以上妆吗
鑫达水暖商店地址在哪,我要去那里办事
一辆双人自行车多少钱?在哪里可以买的到?
完美国际版元素精灵如何能够成为黄金精灵?
梦魇大招台词,英雄联盟梦魇台词是什么
推荐资讯
在细胞的基本结构中,活细胞的细胞膜有控制物
有个关于谚语的查找
长沙电子现货的现况?
你喝多了,第一个电话打给谁?
怎么保养自己?
深圳上沙去东湖公园做什么公车
自己的马子和兄弟走了,我该怎么办?
1987年5月初10看看是什么星座
QQ空间自定义皮肤的问题!~!
走遍天下食品有限公司要代理吗?我想代理他们
一个我拼了命珍惜的男人我还应该继续吗?
关于冬天的伤感网名
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?