【文章內(nèi)容簡介】
以訪問菜單的鍵盤按鍵組合 以上介紹了菜單編輯器的基本情況和屬性接下來將來介紹利用菜單編輯器創(chuàng)建菜單的過程 選取待創(chuàng)建菜單的窗體激活該窗體 從菜單欄的 Tools 菜單中選取 Menu Editor 并單擊或在工具欄上單擊 Menu Editor 按鈕 在菜單編輯器的 Caption 文本框中為第一個(gè)菜單標(biāo)題鍵入希望在菜單欄上顯示的文本如果希望某一字符成為該菜單項(xiàng)的訪問鍵也可以在該字符前加上一個(gè)字符在菜單中這一字符會(huì)自動(dòng)加上一條下劃線 在菜單編輯器的 Name 文本框中鍵入將用來在代碼中引用該菜單控件的名字命名菜單控件的規(guī) 則如下 菜單中項(xiàng)目名稱應(yīng)當(dāng)唯一但不同菜單中相似動(dòng)作項(xiàng)目可以重名 每一個(gè)項(xiàng)目名稱應(yīng)當(dāng)有一個(gè)用鍵盤選取命令的唯一的記憶訪問字符訪問字符通常是菜單標(biāo)題的第一個(gè)字母每個(gè)菜單標(biāo)題不能用同一個(gè)字符 如果命令在完成之前還需要附加信息則在其名稱后面應(yīng)當(dāng)有一個(gè)省略號(hào) 單擊向左或向右箭頭按鈕可以改變?cè)摽丶目s進(jìn)級(jí) 如果需要還可以設(shè)置控件的其他屬性 創(chuàng)建新的菜單控件時(shí)選取 Next 命令 單擊 Insert 可以在現(xiàn)有的控件之間增加一個(gè)菜單控件 單擊向上與向下的箭頭按鈕可以在現(xiàn)有菜單控件之中移動(dòng)控件 菜單控件創(chuàng)建好后選取 OK 可關(guān)閉菜單編 輯器 創(chuàng)建的菜單標(biāo)題將顯示在窗體上在設(shè)計(jì)時(shí)單擊一個(gè)菜單標(biāo)題可下拉其相應(yīng)的菜項(xiàng) 創(chuàng)建分隔符如果在設(shè)計(jì)的菜單中創(chuàng)建分隔符條只需在想要分隔開來的菜單項(xiàng)之間插入一個(gè)菜單控件單擊左右箭頭按鈕使新菜單項(xiàng)縮進(jìn)到與它要隔開的菜單項(xiàng)同級(jí)然后在 Caption文本框中鍵入一個(gè)連字符-設(shè)置 Name屬性 OK關(guān)閉菜單編輯器 創(chuàng)建賦值訪問鍵和快捷鍵 為了提高應(yīng)用程序的性能為用戶提供最方便快捷的操作可以定義菜單的訪問鍵和快捷鍵改進(jìn)鍵盤對(duì)菜單命令的訪問 訪問鍵要在菜單編輯器中給菜單控件賦值訪問鍵先選取要賦值訪問鍵的菜單項(xiàng)在該 菜單項(xiàng) Caption 框中要在作為訪問鍵字符的前面鍵入一個(gè)字符 快捷鍵快捷鍵提供了一種鍵盤單步的訪問方法按下時(shí)會(huì)立刻運(yùn)行一個(gè)菜單項(xiàng)快捷鍵的賦值包括功能鍵與控制鍵的組合如 CTRLF1 鍵或 CTRLA 鍵他們出現(xiàn)在菜單中相應(yīng)菜單項(xiàng)的右邊 根據(jù)以上介紹的方法創(chuàng)建本設(shè)計(jì)的菜單結(jié)構(gòu)如圖 5- 3 所示 圖 53 倉庫管理系統(tǒng)菜單結(jié)構(gòu) 系統(tǒng)初始化菜單的代碼如下 Private Declare Function GetWindow Lib user32 ByVal hwnd As Long ByVal wCmd As Long As Long Public Sub InitPurview 初始化 17 種權(quán)限狀態(tài) Dim i As Integer For i 16 To 0 Step 1 If GetBit Purview i 1 0 Then 權(quán)限類別 16 i 0 Else 權(quán)限類別 16 i 1 End If Next End Sub Private Sub InitMenu 根據(jù)用戶權(quán)限來初始化菜單 If 權(quán)限類別 3 0 Then M 月盤點(diǎn) Enabled False tbToolBarButtons 4 Enabled False End If If 權(quán)限類別 4 0 Then M 供應(yīng)商 Enabled False 登記新供應(yīng)商 MouseIcon Picture1MouseIcon End If If 權(quán) 限類別 5 0 Then M 往來客戶 Enabled False 登記新客戶 MouseIcon Picture1MouseIcon End If If 權(quán)限類別 6 0 Then M 單據(jù)查詢 Enabled False M 庫存查詢 Enabled False M 貨物出入統(tǒng)計(jì) Enabled False M 職員操作統(tǒng)計(jì) Enabled False L 貨物出入 統(tǒng)計(jì) MouseIcon Picture1MouseIcon L 職員操作統(tǒng)計(jì) MouseIcon Picture1MouseIcon L 單據(jù)查詢 MouseIcon Picture1MouseIcon L 庫存查詢 MouseIcon Picture1MouseIcon tbToolBarButtons 5 Enabled False tbToolBarButtons 8 Enabled False End If If 權(quán)限類別 8 0 Then M 打印入庫單 Enabled False M 打印出庫單 Enabled False M 打印借入單 Enabled False M 打印借出單 Enabled False M 打印調(diào)拔單 Enabled False M 打印報(bào)損單 Enabled False M 打印月盤點(diǎn) Enabled False tbToolBarButtons 10 Enabled False End If If 權(quán)限類別 9 0 Then M 公司信息 Enabled False 修改公司信息 MouseIcon Picture1MouseIcon End If If 權(quán)限類別 10 0 Then M 職員信息 Enabled False 登記新職員 MouseIcon Picture1MouseIcon End If If 權(quán)限類別 11 0 Then M 倉庫信息 Enabled False 創(chuàng)建新倉庫 MouseIcon Picture1MouseIcon End If If 權(quán)限類別 12 0 Then M 貨物信息 Enabled False 登記新貨物 MouseIcon Picture1MouseIcon End If If 權(quán)限類別 13 0 Then M 數(shù)據(jù)清除 Enabled False M 系統(tǒng)初始化 Enabled False End If If 權(quán)限類別 14 0 Then M 備份數(shù)據(jù)庫 Enabled False M 還原數(shù)據(jù)庫 Enabled False M 還原到昨天數(shù)據(jù)庫 Enabled False 備份數(shù)據(jù)庫 MouseIcon Picture1MouseIcon 還原數(shù)據(jù)庫 MouseIcon Picture1MouseIcon End If If 權(quán)限類別 15 0 Then M 查看日志 Enabled False 查看日志 MouseIcon Picture1MouseIcon tbToolBarButtons 12 Enabled False End If If 權(quán)限類別 16 0 Then mnuUserManageEnabled False L 用戶管理 MouseIcon Picture1MouseIcon End If End Sub 菜單中的各個(gè)子菜單的程序代碼如下 啟動(dòng)主窗體時(shí)的需要的代碼 Private Sub Form_Load 初始化 m_checkado m_checkadoConnectionString DataConnectString m_checkadoVisible False 每天首次運(yùn)行自動(dòng)備份數(shù)據(jù)庫 fMainrdSource select 操作時(shí)間 from 系統(tǒng)日志 order by 操作時(shí)間 desc fMainesh If fMainrdsetRecordCount 0 Then fMainrdsetMoveFirst Dim t As String t fMainrdsetFields 操作時(shí)間 Value 如果今天從未有人登陸備份數(shù)據(jù)庫 If InStr 1 t Str Date 1 Then BackupData DataPath AppPath \everydaybkp End If Else BackupData DataPath AppPath \everydaybkp End If fMainFormWriteLog 登陸系統(tǒng) 寫入系統(tǒng)日志 InitPurview 初始化各種權(quán)限類別 InitMenu 初始化菜單 加載圖片 Picture1Picture LoadPicture AppPath \data\ground1jpg End Sub 基本信息菜單下的退出子菜單的 Click 事件的程序代碼如下點(diǎn)擊退出會(huì)退出系統(tǒng)但在此之前系統(tǒng)首先會(huì)寫入系統(tǒng)日志 Private Sub Form_Unload Cancel As Integer fMainFormWriteLog 退出系統(tǒng) 寫入系統(tǒng)日志 End Sub Private Sub mnuFileExit_Click Unload Me End Sub 維護(hù)設(shè)置菜單下的修改 密碼子菜單的 Click 事件的程序代碼如下點(diǎn)擊修改密碼會(huì)彈出修改當(dāng)前用戶密碼窗口 Private Sub mnuModifyPassword_Click PasModifyShow vbModal End Sub 維護(hù)設(shè)置菜單下的用戶管理子菜單的 Click 事件的程序代碼如下點(diǎn)擊用戶管理會(huì)彈出用戶管理窗口 Private Sub mnuUserManage_Click 用戶管理 Show vbModal End Sub 幫助菜單下的關(guān)于倉庫管理系統(tǒng)子菜單的 Click 事件的程序 代碼如下點(diǎn)擊關(guān)于倉庫管理系統(tǒng)會(huì)彈出系統(tǒng)幫助窗口 Private Sub mnuHelpAbout_Click frmAboutShow vbModal Me End Sub 打印報(bào)表菜單下的頁面設(shè)置子菜單的 Click 事件的程序代碼如下點(diǎn)擊頁面設(shè)置會(huì)彈出頁面設(shè)置對(duì)話框 Private Sub mnuFilePageSetup_Click On Error Resume Next With dlgCommonDialog DialogTitle 頁面 設(shè)置 CancelError True ShowPrinter End With End Sub 視圖菜單下的狀態(tài)欄子菜單的 Click 事件的程序代碼如下點(diǎn)擊狀態(tài)欄主窗體會(huì)隱藏狀態(tài)欄 Private Sub mnuViewStatusBar_Click sbStatusBarVisible True sbStatusBarVisible mnuViewStatusBarChecked sbStatusBarVisible End Sub 視圖菜單下的工具欄子菜單的 Click 事件的程序代碼如下點(diǎn)擊工具欄主窗體會(huì)隱藏工具欄 Private Sub mnuViewToolbar_Click tbToolBarVisible True tbToolBarVisible mnuViewToolbarChecked tbToolBarVisible End Sub 單據(jù)中心菜單下的報(bào)損單管理子菜單的 Click 事件的程序代碼如下點(diǎn)擊報(bào)損單管理會(huì)彈出報(bào)損單管理窗口 Private Sub M 報(bào)損單 _Click 報(bào)損單 Show vbModal End Sub 維護(hù)設(shè)置菜單下的備