9.1 Visual FoxPro系統(tǒng)菜單
考點(diǎn)1 菜單結(jié)構(gòu)
Visual FoxPro支持兩種類型的菜單:條形菜單和彈出式菜單。菜單項(xiàng)的名稱顯示于屏幕供用戶識別,菜單及菜單項(xiàng)的內(nèi)部名稱或選項(xiàng)序號則用于在代碼中引用。 每一個(gè)菜單項(xiàng)都可以選擇設(shè)置一個(gè)熱鍵和一個(gè)快捷鍵。 無論哪種類型的菜單,當(dāng)選擇某個(gè)選項(xiàng)時(shí)都會有一定的動作,這個(gè)動作可以是下列3種情況之一:執(zhí)行一條命令、執(zhí)行一個(gè)過程或激活另一個(gè)菜單。
考點(diǎn)2 系統(tǒng)菜單
Visual FoxPro系統(tǒng)菜單是一個(gè)典型的菜單系統(tǒng),其主菜單是一個(gè)條形菜單。條形菜單的內(nèi)部名字為_MSYSMENU,也可看做是整個(gè)菜單系統(tǒng)的名字。 條形菜單中常見選項(xiàng)的名稱及內(nèi)部名字如表9-1所示,各彈出式菜單的內(nèi)部名字如表9-2所示。表9-3的是“編輯”菜單中常用選項(xiàng)的選項(xiàng)名稱和內(nèi)部名字。 表9-1 主菜單(MSYSMENU)常見選項(xiàng)
 表9-2 彈出式菜單的內(nèi)部名字

表9-3 “編輯”菜單(_MEDIT)常用選項(xiàng)

通過SET SYSMENU命令可以允許或禁止在程序執(zhí)行時(shí)訪問系統(tǒng)菜單,也可以重新配置系統(tǒng)菜單,格式如下。 SET SYSMENU ON|OFF AUTOMATIC |TO[<彈出式菜單名表>] |TO[<條形菜單項(xiàng)名表>] |TO[DEFAULT]|SAVE|NOSAVE
小提示: 如不帶任何參數(shù),直接SET SYSMENU TO命令,將屏蔽系統(tǒng)菜單,使系統(tǒng)菜單不可用。
9.2 下拉式菜單設(shè)計(jì)
考點(diǎn)3 菜單設(shè)計(jì)的基本過程
用菜單設(shè)計(jì)器設(shè)計(jì)下拉式菜單的基本過程如下。 (l)調(diào)用菜單設(shè)計(jì)器。 (2)在“菜單設(shè)計(jì)器”窗口中定義菜單,指定菜單的各項(xiàng)內(nèi)容,定義完成后,通過菜單命令“保存”或直接使用快捷鍵Ctrl+W保存菜單。 (3)通過菜單命令“菜單”*“生成”命令,產(chǎn)生可執(zhí)行的菜單程序文件(MPR)。 (4)在命令窗口中,使用DO命令執(zhí)行菜單文件,此處的文件擴(kuò)展名MPR不能默認(rèn)。 菜單設(shè)計(jì)的基本流程如圖9-1所示。  圖9-1 菜單設(shè)計(jì)的基本流程圖
考點(diǎn)4 定義菜單
1“菜單設(shè)計(jì)器”窗口 “菜單設(shè)計(jì)器”窗口每頁顯示和定義一個(gè)菜單,可以是條形菜單(菜單欄),也可以是彈出式菜單(子菜單)!安藛卧O(shè)計(jì)器”窗口打開時(shí),首先顯示和定義的是條形菜單,即主菜單名。窗口的左邊是一個(gè)列表框,其中每一行定義當(dāng)前菜單的一個(gè)菜單項(xiàng),包括“菜單名稱”、“結(jié)果”和“選項(xiàng)”3列內(nèi)容(如圖9-2所示)。 (1)“菜單名稱”列。 (2)“結(jié)果”列。 (3)“選項(xiàng)”列。 2“顯示”菜單 在菜單設(shè)計(jì)一器環(huán)境下,系統(tǒng)“顯示”菜單會出現(xiàn)兩條命令。 (1)“常規(guī)選項(xiàng)”對話框。 (2)“菜單選項(xiàng)”對話框。  圖9-2 “菜單設(shè)計(jì)器”窗口
考點(diǎn)5 用編程方式定義菜單
無論是條形菜單還是彈出式菜單,都可以通過命令進(jìn)行定義和設(shè)計(jì)。此處介紹幾種有關(guān)菜單定義的簡單命令。 (1)條形菜單定義。 (2)彈出式菜單定義。
考點(diǎn)6 為頂層表單添加菜單
為頂層表單添加下拉式菜單的方法和過程如下。 (1)在“菜單設(shè)計(jì)器”窗口中設(shè)計(jì)好下拉式菜單。 (2)打開“常規(guī)選項(xiàng)”對話框,選中對話框右下角的“頂層表單”復(fù)選框。 (3)將表單的ShowWindow屬性設(shè)置為2,使之成為頂層表單。 (4)在表單的Init事件中添加調(diào)用菜單的程序代碼: DO<文件名>WITH This[,“<菜單名>”] 此處的<文件名>是指被調(diào)用的菜單程序文件(MPR),<菜單名>是為被添加的下拉式菜單的條形菜單指定的一個(gè)內(nèi)部名字。 (5)在表單的Destroy事件中添加清除菜單的程序代碼: RELEASE MENU<菜單名>[EXTENDED] 其中EXTENDED表示在清除條形菜單時(shí)一起清除其下屬的所有子菜單。
9.3 快捷菜單設(shè)計(jì)
考點(diǎn)7 快捷菜單的建立與執(zhí)行
與下拉式菜單相比,快捷菜單沒有條形菜單,只有彈出式菜單。建立快捷菜單的方法和過程如下。 (1)打開“新建”對話框二 (2)在“新建”對話框中選擇“菜單”選項(xiàng).單擊“新建文件”按鈕。 (3)在“新建菜單”對話框中選擇“快捷菜單”選項(xiàng),打開“快捷菜單設(shè)計(jì)器”窗口。 (4)用與設(shè)計(jì)下拉式菜單相似的方法,在“快捷菜單設(shè)計(jì)器”窗口中設(shè)計(jì)快捷菜單,生成菜單程序文件。 (5)在快捷菜單的“清理”代碼中添加清除菜單的命令,使得在選擇、執(zhí)行菜單命令后能及時(shí)清除菜單,釋放其所占用的內(nèi)存空間,格式為: RELEASE POPUPS<快捷菜單名>[EXTENDED] (6)在設(shè)計(jì)器環(huán)境下,選定需要添加快捷菜單的對象。 (7)在選定對象的RightClick事件代碼中,添加調(diào)用快捷菜單程序的格式為: DO<快捷菜單程序文件名> 此處的文件擴(kuò)展名MPR不能默認(rèn)。 |