3.6.3两个菜单例子
·例子1
此例子定义一个有两个子菜单的菜单条,“File”菜单和“Edit”菜单。使用鼠标来选择“Edit”->“Edit Fruit-Apples”菜单项将调用服务器“MyServer”的进程“EditApples”,此进程同样将可被键入“e”->“a”调用,或键入Alt-E, “e”, “a”来调用。
“//”符号是笔者为了使易读加上的,实际请去除“//”符号和其后说明内容。
MENU 'MyServerMenu'
BEGIN
POPUP '&File {F}'//文件菜单。
BEGIN
MENUITEM '&New'Client:CreateNewDocument
MENUITEM '&Open...'Client:OpenDocument
MENUITEM 'Open Pro&ject...' Client:OpenProject
MENUITEM '&Close'Client:CloseDocument
MENUITEM 'Close Projec&t'Client:CloseProject
MENUITEM SEPARATOR
MENUITEM '&Save'Client:SaveDocument
MENUITEM 'Save &As...'Client:SaveDocumentAs
MENUITEM 'Save A&ll'Client:SaveAllDocuments
POPUP '&SubMenu1' //子菜单。
BEGIN
MENUITEM '&Item 1'MYSERVER:MyService1
MENUITEM 'I&tem 2'MYSERVER:MyService2
END
MENUITEM SEPARATOR //“-”横线分隔符。
MENUITEM 'E&xit'Client:QuitFromEDAClient
END
POPUP '&Edit' //编辑菜单。
BEGIN
MENUITEM '&Undo\tAlt+BkSp'MYSERVER:DoUndo
MENUITEM '&Redo\tCtrl+BkSp' MYSERVER:DoRedo
MENUITEM SEPARATOR
MENUITEM 'Cu&t\tShift+
MENUITEM '&Copy\tCtrl+Ins'MYSERVER:DoCopy
MENUITEM '&Paste\tShift+Ins' MYSERVER:DoPaste
MENUITEM 'C&lear\tCtrl+
MENUITEM SEPARATOR
POPUP '&Edit Fruit {E}'//子菜单,E是快捷键。
BEGIN
MENUITEM '&Apples'MYSERVER:EditApples
//表示调用MYSERVER服务器中的EditApples进程,A是快捷键。
MENUITEM '&
MENUITEM '&Pears'MYSERVER:EditPears
END
END
END
·例子2
Client99SE.Rcs文件内容,此文件能在Protel 99 SE的安装目录中System子目录下找到,此文件是在Protel 99 SE没有打开任何文档时,显示的菜单。您可以启动Protel 99 SE对一下,看是不是这样的。
Menu 'NoDocument'//菜单名称为NoDocument
Begin
Popup '&File {F}'//文件菜单。
Begin
MenuItem '&New'CreateNewDocument
MenuItem '&Open...'OpenDocument
MenuItem SEPARATOR
MenuItem 'E&xit'QuitFromEDAClient
End
Popup '&View {V}'//视图菜单。
Begin
MenuItem 'Design &Manager'ToggleDocumentManager
MenuItem '&Status Bar'ToggleClientStatusBar
MenuItem 'Command Status'ToggleProcessStatusBar
End
Popup '&Help {H}'//帮助菜单。
Begin
MenuItem '&Contents''Client:RunHelpTopic(FileName=\Help\Protel.hlp|Topic=contents)'
MenuItem SEPARATOR
Popup 'Help &On'
Begin
MenuItem '&Using the Design Explorer''Client:RunHelpTopic(FileName=\Help\Protel.hlp|Topic=UsingTheDesignExplorer)'
MenuItem '&Creating a New Design''Client:RunHelpTopic(FileName=\Help\Protel.hlp|Topic=CreatingANewDesign)'
MenuItem 'Creating a New &Document or Folder' 'Client:RunHelpTopic(FileName=\Help\Protel.hlp|Topic=NewDocumentDocuments)'
MenuItem '&Working in a Design Window''Client:RunHelpTopic(FileName=\Help\Protel.hlp|Topic=WorkingWithTheDesignWindow)'
MenuItem SEPARATOR
MenuItem '&Managing Design Teams''Client:RunHelpTopic(FileName=\Help\Protel.hlp|Topic=ManagingDesignTeams)'
End
MenuItem '&Shortcut Keys''Client:RunHelpTopic(FileName=\Help\Protel.hlp|Topic=ShortcutKeys)'
MenuItem 'Process &Reference''Client:RunHelpTopic(FileName=\Help\Client.hlp|Topic=contents)'
MenuItem SEPARATOR
MenuItem '&About...'HelpAbout
End
End
//以下定义热键。
HotKeyTable 'NoDocument'
Begin
Key 'Client:RunDesignExplorerSysCommand(Command=NextTab)'TABCtrlEndKey
Key 'Client:RunDesignExplorerSysCommand(Command=PrevTab)'TABShift CtrlEndKey
Key 'Client:RunDesignExplorerSysCommand(Command=NextView)'F6CtrlEndKey
Key 'Client:RunDesignExplorerSysCommand(Command=PrevView)'F6Shift CtrlEndKey
Key 'Client:RunDesignExplorerSysCommand(Command=ToggleFocus)'TABEndKey
Key 'Client:RunDesignExplorerSysCommand(Command=ToggleFocus)'TABShiftEndKey
Key Client:CloseDocumentF4CtrlEndKey
Key 'Client:RunDesignExplorerSysCommand(Command=Refresh)'F5EndKey
End
//以下定义工具条。
ToolBar 'NoDocument' 'Fixed Top' 13 1 50 'True' 5000
Begin
Button 'PROJMAN.BMP'Client:ToggleDocumentManager
Button 'FILEOPEN.BMP' Client:OpenDocument
Button 'HELP.BMP''Client:RunHelpTopic(FileName=\Help\Protel.hlp|Topic=Contents)'
End
BMP文件为工具条上各按扭要显示的图形内容,如图1-44:
![]()
图1-44 无文档打开时的工具条