VB運用菜單編譯器編寫記事本
❶ 用VB程序編寫記事本
Private Const LF_FACESIZE = 32
Private Const CF_PRINTERFONTS = &H2
Private Const CF_SCREENFONTS = &H1
Private Const CF_BOTH = (CF_SCREENFONTS Or CF_PRINTERFONTS)
Private Const CF_EFFECTS = &H100&
Private Const CF_FORCEFONTEXIST = &H10000
Private Const CF_INITTOLOGFONTSTRUCT = &H40&
Private Const CF_LIMITSIZE = &H2000&
Private Const REGULAR_FONTTYPE = &H400
'charset Constants
Private Const ANSI_CHARSET = 0
Private Const ARABIC_CHARSET = 178
Private Const BALTIC_CHARSET = 186
Private Const CHINESEBIG5_CHARSET = 136
Private Const DEFAULT_CHARSET = 1
Private Const EASTEUROPE_CHARSET = 238
Private Const GB2312_CHARSET = 134
Private Const GREEK_CHARSET = 161
Private Const HANGEUL_CHARSET = 129
Private Const HEBREW_CHARSET = 177
Private Const JOHAB_CHARSET = 130
Private Const MAC_CHARSET = 77
Private Const OEM_CHARSET = 255
Private Const RUSSIAN_CHARSET = 204
Private Const SHIFTJIS_CHARSET = 128
Private Const SYMBOL_CHARSET = 2
Private Const THAI_CHARSET = 222
Private Const TURKISH_CHARSET = 162
Private Type LOGFONT
lfHeight As Long
lfWidth As Long
lfEscapement As Long
lfOrientation As Long
lfWeight As Long
lfItalic As Byte
lfUnderline As Byte
lfStrikeOut As Byte
lfCharSet As Byte
lfOutPrecision As Byte
lfClipPrecision As Byte
lfQuality As Byte
lfPitchAndFamily As Byte
lfFaceName As String * 31
End Type
Private Type CHOOSEFONT
lStructSize As Long
hwndOwner As Long ' caller's window handle
hDC As Long ' printer DC/IC or NULL
lpLogFont As Long ' ptr. to a LOGFONT struct
iPointSize As Long ' 10 * size in points of selected font
flags As Long ' enum. type flags
rgbColors As Long ' returned text color
lCustData As Long ' data passed to hook fn.
lpfnHook As Long ' ptr. to hook function
lpTemplateName As String ' custom template name
hInstance As Long ' instance handle of.EXE that
' contains cust. dlg. template
lpszStyle As String ' return the style field here
' must be LF_FACESIZE or bigger
nFontType As Integer ' same value reported to the EnumFonts
' call back with the extra FONTTYPE_
' bits added
MISSING_ALIGNMENT As Integer
nSizeMin As Long ' minimum pt size allowed &
nSizeMax As Long ' max pt size allowed if
' CF_LIMITSIZE is used
End Type
Private Declare Function CHOOSEFONT Lib "comdlg32.dll" Alias "ChooseFontA" _
(ByRef pChoosefont As CHOOSEFONT) As Long
Private Sub Command1_Click()
Dim cf As CHOOSEFONT, lfont As LOGFONT
Dim fontname As String, ret As Long
cf.flags = CF_BOTH Or CF_EFFECTS Or CF_FORCEFONTEXIST Or CF_INITTOLOGFONTSTRUCT Or CF_LIMITSIZE
cf.lpLogFont = VarPtr(lfont)
cf.lStructSize = LenB(cf)
'cf.lStructSize = Len(cf) ' size of structure
cf.hwndOwner = Form1.hWnd ' window Form1 is opening this dialog box
'cf.hDC = Printer.hDC ' device context of default printer (using VB's mechanism)
cf.rgbColors = RGB(0, 0, 0) ' black
cf.nFontType = REGULAR_FONTTYPE ' regular font type i.e. not bold or anything
cf.nSizeMin = 10 ' minimum point size
cf.nSizeMax = 72 ' maximum point size
ret = CHOOSEFONT(cf) 'brings up the font dialog
If ret <> 0 Then ' success
fontname = StrConv(lfont.lfFaceName, vbUnicode, &H804) 'Retrieve chinese font name in english version os
fontname = Left$(fontname, InStr(1, fontname, vbNullChar) - 1)
'Assign the font properties to text1
With Text1.Font
.Charset = lfont.lfCharSet 'assign charset to font
.Name = fontname
.Size = cf.iPointSize / 10 'assign point size
Text1.Text = .Name & ":" & .Charset & ":" & .Size 'display data in chosen Font
End With
End If
End Sub
Private Sub Form_Load()
End Sub
❷ 用vb怎麼編寫記事本
思路如下:
1、建立一個窗體應用程序,添加一個textBox控制項。
2、添加菜單控制項。
3、設置菜單控制項,添加openFileDialog,saveFileDialog等控制項。
4、你還可以添加其他控制項,如字扮態悔體,顏色,列印等。
5、設置openFileDialog、saveFileDialog控制項的廳正屬性。
6、運行程序即可。
思路就是這個樣子,當然你閉銀也可以不這么做,不同人的設計思路和實現方法可能都不同。具體的程序你自己設置。不是很難。主要是屬性設置,並不需要自己編寫大量程序。
❸ 用VB編記事本
用VB跟我學做記事本(很簡單喲)
【簡 介】
用VB做一個記事本實在不很復雜,我們完全可以通過向導來很方便地做出來。但本文只打算討論用手動方法製作記事本,旨在向VB初學者展示:學VB原來是如此容易!
通過閱讀、研究本文並按本文所述進行嘗試,初學者將學到很多東西,如怎樣使用RichText控制項來打開和保存文件手陸,怎樣製作菜單、工具欄和狀態欄以及如何對畢慎頃其編寫代碼等。
第一章 讓我們的記事本馬上運行
急於求成是初學者共有的心願。那好,請按如下三個步驟做,我們的願望立即就可以實現!
步驟一:繪制界面。
新建一個標准EXE工程,將其Caption屬性改為「超級記事本」,點擊Icon屬性給它找個合適的Icon圖標。單擊菜單「工程」-「部件」,在彈出的「部件」對話框里找到Microsoft RichText Box 6.0和公共對話框Microsoft Common Dialog 6.0並選中它們,單擊「確定」按鈕。這時左邊的工具欄上出現了我們剛才新添的兩個控制項了。在窗體上繪制RichText Box和Commn Dialog,其中RichText Box的大小和位置可不用理睬,我們將在代碼中處理它,當然,有必要把它的ScrollBar屬性設為2-rtfVertical,這樣在打開和編輯文件時垂直滾動條才可用。
步驟二:編輯菜單。
按Ctrl+E調出菜單編輯器,我們來做如下幾個菜單:
一.文件菜單:
文件(第一層) mnuFile
新建(第二層) mnuNew
打開(第二層) mnuOpen
保存(第二層) mnuSave
- (第二層) mnuFileSep (分隔線)
退出(第二層) mnuExit
二.編輯菜單:
編輯(第一層) mnuEdit
復制(第二層) mnuCopy
剪切(第二層) mnuCut
粘貼(第二層) mnuPaste
- (第二層) mnuEditSep (分隔線)
全選(第二層) mnuSelecAll
三.搜索菜單:
搜索(第一層) mnuSearch
查找(第二層) mnuFind
查找下一個(第二層) mnuFindOn
四.幫助菜單:
幫助(第一層) mnuHelp
使用說明(第二層) mnuUsage
關於(第二層) mnuAbout
(註:各菜單項的快捷鍵請自行設置)
好了,其它的菜單項以後再根據需要添加。現在進入:
步驟三:編寫代碼。
'聲明查找變數
Dim sFind As String
'聲明文件類型
Dim FileType, FiType As String
'初孝態始化程序
Private Sub Form_Load()
'設置程序啟動時的大小
Me.Height = 6000
Me.Width = 9000
End Sub
'設置編輯框的位置和大小
Private Sub Form_Resize()
On Error Resume Next '出錯處理
RichTextBox1.Top=20
RichTextBox1.Left=20
RichTextBox1.Height = ScaleHeight-40
RichTextBox1.Width = ScaleWidth-40
End Sub
'新建文件
Private Sub mnuNew_Click()
RichTextBox1.Text = "" '清空文本框
FileName = "未命名"
Me.Caption = FileName
End Sub
'打開文件
Private Sub mnuOpen_Click()
CommonDialog1.Filter = "文本文檔(*.txt) *.txt RTF文檔(*.rtf) *.rtf 所有文件(*.*) *.*"
CommonDialog1.ShowOpen
RichTextBox1.Text = "" '清空文本框
FileName = CommonDialog1.FileName
RichTextBox1.LoadFile FileName
Me.Caption = "超級記事本:" amp; FileName
End Sub
'保存文件
Private Sub mnuSave_Click()
CommonDialog1.Filter = "文本文檔(*.txt) *.txt RTF文檔(*.rtf) *.rtf 所有文件(*.*) *.*"
CommonDialog1.ShowSave
FileType = CommonDialog1.FileTitle
FiType = LCase(Right(FileType, 3))
FileName = CommonDialog1.FileName
Select Case FiType
Case "txt"
RichTextBox1.SaveFile FileName, rtfText
Case "rtf"
RichTextBox1.SaveFile FileName, rtfRTF
Case "*.*"
RichTextBox1.SaveFile FileName
End Select
Me.Caption = "超級記事本:" amp; FileName
End Sub
'退出
Private Sub mnuExit_Click()
End
End Sub
'復制
Private Sub mnuCopy_Click()
Clipboard.Clear
Clipboard.SetText RichTextBox1.SelText
End Sub
'剪切
Private Sub mnuCut_Click()
Clipboard.Clear
Clipboard.SetText RichTextBox1.SelText
RichTextBox1.SelText = ""
End Sub
'全選
Private Sub mnuSelectAll_Click()
RichTextBox1.SelStart = 0
RichTextBox1.SelLength = Len(RichTextBox1.Text)
End Sub
'粘貼
Private Sub mnuPaste_Click()
RichTextBox1.SelText = Clipboard.GetText
End Sub
'查找
Private Sub mnuFind_Click()
sFind = InputBox("請輸入要查找的字、詞:", "查找內容", sFind)
RichTextBox1.Find sFind
End Sub
'繼續查找
Private Sub mnuFindOn_Click()
RichTextBox1.SelStart = RichTextBox1.SelStart + RichTextBox1.SelLength + 1
RichTextBox1.Find sFind, , Len(RichTextBox1)
End Sub
'使用說明
Private Sub mnuReadme_Click()
On Error GoTo handler
RichTextBox1.LoadFile "Readme.txt", rtfText '請寫好Readme.txt文件並存入程序所在文件夾中
Me.Caption = "超級記事本:" amp; "使用說明"
Exit Sub
handler:
MsgBox "使用說明文檔可能已經被移除,請與作者聯系。", vbOKOnly, " 錯誤信息"
End Sub
'關於
Private Sub mnuAbout_Click()
MsgBox "超級記事本 Ver1.0 版權所有(C) 2001 土人",vbOKOnly,"關於"
End Sub
'設置彈出式菜單(即在編輯框中單擊滑鼠右鍵時彈出的動態菜單)
Private Sub RichTextBox1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then
PopupMenu mnuEdit, vbPopupMenuLeftAlign
Else
Exit Sub
End If
End Sub
'防止在切換輸入法時字體自變(感謝王必成先生提供此方案)
Private Sub RichTextBox1_KeyUp(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeySpace Then
RichTextBox1.SelFontName = CommonDialog1.FontName
End If
End Sub
至此,我們的記事本可以編譯使用了。點擊菜單「文件」-「生成XXX.EXE」,回到桌面運行我們的記事本看看,是不是頗有成就感?
當然,這樣的記事本還比較粗糙,我們還需要做些工作,請看下一章。
第二章 美化程序界面
多數字處理軟體都有工具欄和狀態欄。工具欄和狀態欄除了能美化我們的程序使其更具有專業性質外,還給用戶帶來操作上的便利。現在我們就來做一做這兩樣東西。
一.工具欄
(一)製作工具欄
單擊「工程」-「部件」,選中Microsoft Windows Common Control 6.0並確定。這時,我們要用到的控制項就出現在左邊的工具欄上了。
要做工具欄,首先需要一個叫ImageList的控制項來裝載圖像。在程序界面上添加它,然後右鍵單擊此控制項,左鍵單擊「屬性」,彈出「屬性頁 」對話框的「圖像」,再單擊「插入圖片」就可以一次性裝載圖片了(如不滿意,以後還可以添加)。圖片可在C:\Microsoft Visual Studio\Common\Graphics\Bitmaps\TlBr_W95下選擇(這里假設你的VB安裝在C盤下)。注意了:在插入圖片時給每一張圖片註明關鍵字,以便在引用圖片時不至於混亂。如插入「新建」的圖片,我們在「關鍵字」欄註明「New」。
圖片有了,接下來在程序界面添加工具欄(ToolBar)。添加後工具欄就出現在菜單下面,右鍵單擊它,選擇「屬性」,在彈出的「屬性頁」對話框中的「通用」項作些設置,主要如下兩項:
1.「圖像列表」:選擇ImageList1
2.「樣式」:根據喜愛選擇1-trbStandard或者2-trbFlat
繼續點擊「屬性頁」的「按鈕」選項,插入若干按鈕。按鈕有多種樣式,請根據需要設置。這里請一定注意:每一個與用戶操作有關的按鈕都必須註明關鍵字、裝載圖片,如「新建」按鈕,在「關鍵字」項註明「新建」,在「圖像」項鍵入「New」(即ImageList1中的圖片關鍵字),需要的話還可以在「工具提示文本」項填入適當的提示語。
(二)編寫工具欄的按鈕代碼
工具欄按鈕的代碼編輯很簡單,可以按照下面的格式去編寫:
Private Sub ToolBar1_ButtonClick(ByVal Button As MSComctlLib.Button)
On Error Resume Next '出錯處理
Select Case Button.Key '按關鍵字選擇
Case "新建"
mnuNew_Click '等於菜單項「新建」被單擊
Case "打開" '等於菜單項「打開」被單擊
mnuOpen_Click
'......(繼續編寫其它按鈕的代碼)
End Select
End Sub
完成後試運行一下我們的程序,我們發現,有了工具欄之後,程序變得漂亮多了,只是有一個問題:打開一個較長的文檔後,編輯框的下拉滾動條向上的箭頭不見了。原因是:工具條佔用一定的空間。解決方法:將「設置編輯框的位置和大小」中的RichTextBox1.Top = 20 和 RichTextBox1.Height = Me.ScaleHeight - 40分別改為RichTextBox1.Top = 380,RichTextBox1.Height = Me.ScaleHeight - 400即可。
二.狀態欄
(一)製作狀態欄
狀態欄的英文名字叫StatusBar,在窗體上添加它後會默認出現在窗體的最下方。用滑鼠右鍵點擊它,調出「屬性頁」對話框,單擊「窗格」項,插入一些窗格,可以將各個窗格的「樣式」設置為:
0-sbrText 顯示文本,需編寫代碼
1-sbrCaps 顯示大小寫狀態,無需編程
2-sbrNum 顯示NumLock鍵開關狀態,無需編程
3-sbrIns 顯示Insert鍵狀態,無需編程
4-sbrScr1
5-sbrTime 顯示時間,不編程時時間不會隨系統時鍾變化
6-sbrDate 顯示日期,無需編程
注意:加進狀態欄後需將Form_Resze中的RichTextBox1.Height = Me.ScaleHeight - 400改為RichTextBox1.Height = Me.ScaleHeight - 600。
(二)狀態欄根據其「樣式」屬性決定用不用編寫代碼(如上文所述)。下面舉些例子,讀者可以認真揣摩,從而達到舉一反三的效果。
例一:用戶選取了「新建」後,讓第一個窗格顯示:「目前狀態:正在打開文件《……》」。請將下面代碼寫進「打開」菜單裡面:
StatusBar1.Panels(1).Text = "目前狀態:正在打開文件" amp; "《" amp;CommonDialog1.FileTitle amp; "》"
例二:讓第三個窗格顯示時間並讓時間跟隨系統時鍾變化。
首先,給程序加一個Timer控制項,將其Interval屬性設為1000。然後:
在Form_Load過程加入:StatusBar1.Panels(1).Text = Time;然後給Timer控制項編寫代碼:
Private Sub Timer1_Timer()
If StatusBar1.Panels(3).Text < > CStr(Time) Then
StatusBar1.Panels(3).Text = Time
End If
End Sub
例三:當編輯框的文本發生變化時讓第一個窗格顯示:「正在編輯文檔:文件名」。
Private Sub RichTextBox1_Chang()
StatusBar1.Panels(1).Text = "正在編輯文檔:" amp; CommonDialog1.FileName
End Sub
辛苦了那麼久,我們現在已經擁有一個象模象樣的記事本了。這個記事本由於用了RichText控制項,理論上它能打開和編輯任意大的文檔,使用起來的確比Windows自帶的記事本方便得多。當然,還有一些其它的功能需要添加和完善,這就靠你慢慢去完成了。
http://www.enet.com.cn/article/2004/0319/A20040319295920.shtml
❹ vb課程設計記事本程序么,求步驟😔
新建一工程,添加菜單(打開,保存,關閉,退出....),添加文本編輯控制項;
添加代碼(文件的打迅首搏開,保存,關閉....程序的退芹改出...),將編輯框里的文本寫入文件;
保存工程;
編譯,生成可執行文件(---可用來測試一下);畝祥
打包,發布(製作安裝包)。
❺ VB語言編寫的記事本
Dim sFind As String
'聲明文件類型
Dim FileType, FiType As String
'初始化程序
Private Sub Form_Load()
'設置程序啟動時的大小
Me.Height = 6000
Me.Width = 9000
End Sub
'設置編輯框的位置和大小
Private Sub Form_Resize()
On Error Resume Next '出錯處理
RichTextBox1.Top=20
RichTextBox1.Left=20
RichTextBox1.Height = ScaleHeight-40
RichTextBox1.Width = ScaleWidth-40
End Sub
'新建文件
Private Sub mnuNew_Click()
RichTextBox1.Text = "" '清空文本框
FileName = "未命名"
Me.Caption = FileName
End Sub
'打開文件友彎卜
Private Sub mnuOpen_Click()
CommonDialog1.Filter = "文本文檔(*.txt)*.txtRTF文檔(*.rtf)*.rtf所有鬧蔽文件(*.*)*.*"
CommonDialog1.ShowOpen
RichTextBox1.Text = "" '清空文本框
FileName = CommonDialog1.FileName
RichTextBox1.LoadFile FileName
Me.Caption = "超級記好穗事本:" & FileName
End Sub
'保存文件
Private Sub mnuSave_Click()
CommonDialog1.Filter = "文本文檔(*.txt)*.txtRTF文檔(*.rtf)*.rtf所有文件(*.*)*.*"
CommonDialog1.ShowSave
FileType = CommonDialog1.FileTitle
FiType = LCase(Right(FileType, 3))
FileName = CommonDialog1.FileName
Select Case FiType
Case "txt"
RichTextBox1.SaveFile FileName, rtfText
Case "rtf"
RichTextBox1.SaveFile FileName, rtfRTF
Case "*.*"
RichTextBox1.SaveFile FileName
End Select
Me.Caption = "超級記事本:" & FileName
End Sub
'退出
Private Sub mnuExit_Click()
End
End Sub
'復制
Private Sub mnuCopy_Click()
Clipboard.Clear
Clipboard.SetText RichTextBox1.SelText
End Sub
'剪切
Private Sub mnuCut_Click()
Clipboard.Clear
Clipboard.SetText RichTextBox1.SelText
RichTextBox1.SelText = ""
End Sub
'全選
Private Sub mnuSelectAll_Click()
RichTextBox1.SelStart = 0
RichTextBox1.SelLength = Len(RichTextBox1.Text)
End Sub
'粘貼
Private Sub mnuPaste_Click()
RichTextBox1.SelText = Clipboard.GetText
End Sub
'查找
Private Sub mnuFind_Click()
sFind = InputBox("請輸入要查找的字、詞:", "查找內容", sFind)
RichTextBox1.Find sFind
End Sub
'繼續查找
Private Sub mnuFindOn_Click()
RichTextBox1.SelStart = RichTextBox1.SelStart + RichTextBox1.SelLength + 1
RichTextBox1.Find sFind, , Len(RichTextBox1)
End Sub
'使用說明
Private Sub mnuReadme_Click()
On Error GoTo handler
RichTextBox1.LoadFile "Readme.txt", rtfText '請寫好Readme.txt文件並存入程序所在文件夾中
Me.Caption = "超級記事本:" & "使用說明"
Exit Sub
handler:
MsgBox "使用說明文檔可能已經被移除,請與作者聯系。", vbOKOnly, " 錯誤信息"
End Sub
'關於
Private Sub mnuAbout_Click()
MsgBox "超級記事本 Ver1.0 版權所有(C) 2001 土人",vbOKOnly,"關於"
End Sub
'設置彈出式菜單(即在編輯框中單擊滑鼠右鍵時彈出的動態菜單)
Private Sub RichTextBox1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then
PopupMenu mnuEdit, vbPopupMenuLeftAlign
Else
Exit Sub
End If
End Sub