菜单?
我在计算器界面上添加了一个菜单栏 但是怎么用它 呵呵 加完了竟然束手无策
要用菜单下面的功能怎么办 ?
我用记事本打开了菜单的mpr文件 是不是 在主程序里调用jjm.mpr后 就可以用到他里面的变量 比如菜单项的ID?
那么菜单项的ID是那些呢?
程序代码:* *********************************************************
* *
* * 09/20/12 JJM.MPR 13:02:02
* *
* *********************************************************
* *
* * 作者姓名
* *
* * Copyright (C) 2012 公司名称
* * 地址
* * 城市, Zip
* * 国家
* *
* * 说明:
* * This PROGRAM was automatically generated BY GENMENU.
* *
* *********************************************************
* To attach this menu to your Top-Level form,
* call it from the Init event of the form:
* Syntax: DO <mprname> WITH <oFormRef> [,<cMenuname>|<lRename>][<lUniquePopups>]
* oFormRef - form object reference (THIS)
* cMenuname - name for menu (this is required for Append menus - see below)
* lRename - renames Name property of your form
* lUniquePopups - determines whether to generate unique ids for popup names
* example:
* PROCEDURE Init
* DO mymenu.mpr WITH THIS,.T.
* ENDPROC
* Use the optional 2nd parameter if you plan on running multiple instances
* of your Top-Level form. The preferred method is to create an empty string
* variable and pass it by reference so you can receive the form name after
* the MPR file is run. You can later use this reference to destroy the menu.
* PROCEDURE Init
* LOCAL cGetMenuName
* cGetMenuName = ""
* DO mymenu.mpr WITH THIS, m.cGetMenuName
* ENDPROC
* The logical lRename parameter will change the name property of your
* form to the same name given the menu and may cause conflicts in your
* code if you directly reference the form by name.
* You will also need to remove the menu when the form is destroyed so that it does
* not remain in memory unless you wish to reactivate it later in a new form.
* If you passed the optional lRename parameter as .T. as in the above example,
* you can easily remove the menu in the form's Destroy event as shown below.
* This strategy is ideal when using multiple instances of Top-Level forms.
* example:
* PROCEDURE Destroy
* RELEASE MENU (THIS.Name) EXTENDED
* ENDPROC
* Using Append/Before/After location options:
* You might want to append a menu to an existing Top-Level form by setting
* the Location option in the General Options dialog. In order to do this, you
* must pass the name of the menu in which to attach the new one. The second
* parameter is required here. If you originally created the menu with the lRename
* parameter = .T., then you can update the menu with code similar to the following:
* example:
* DO mymenu2.mpr WITH THISFORM,THISFORM.name
*
* Using lUniquePopups:
* If you are running this menu multiple times in your application, such as in multiple
* instances of the same top-level form, you should pass .T. to the lUniquePopups
* parameter so that unique popup names are generated to avoid possible conflicts.
* example:
* PROCEDURE Init
* DO mymenu.mpr WITH THIS,.T.,.T.
* ENDPROC
*
* Note: Parm4-Parm9 are not reserved and freely available for use with your menu code.
*
LPARAMETERS oFormRef, getMenuName, lUniquePopups, parm4, parm5, parm6, parm7, parm8, parm9
LOCAL cMenuName, nTotPops, a_menupops, cTypeParm2, cSaveFormName
IF TYPE("m.oFormRef") # "O" OR ;
LOWER(m.oFormRef.BaseClass) # 'form' OR ;
m.oFormRef.ShowWindow # 2
MESSAGEBOX([该菜单只可从顶层表单中调用。确保表单的 ShowWindow 属性被设置为 2。更详细的资料,请阅读菜单 MPR 文件的头部章节。])
RETURN
ENDIF
m.cTypeParm2 = TYPE("m.getMenuName")
m.cMenuName = SYS(2015)
m.cSaveFormName = m.oFormRef.Name
IF m.cTypeParm2 = "C" OR (m.cTypeParm2 = "L" AND m.getMenuName)
m.oFormRef.Name = m.cMenuName
ENDIF
IF m.cTypeParm2 = "C" AND !EMPTY(m.getMenuName)
m.cMenuName = m.getMenuName
ENDIF
DIMENSION a_menupops[3]
IF TYPE("m.lUniquePopups")="L" AND m.lUniquePopups
FOR nTotPops = 1 TO ALEN(a_menupops)
a_menupops[m.nTotPops]= SYS(2015)
ENDFOR
ELSE
a_menupops[1]="编辑e"
a_menupops[2]="查看v"
a_menupops[3]="帮助h"
ENDIF
* *********************************************************
* *
* * 菜单定义
* *
* *********************************************************
*
DEFINE MENU (m.cMenuName) IN (m.oFormRef.Name) BAR
DEFINE PAD _3lo0rxpth OF (m.cMenuName) PROMPT "编辑(\<E)" COLOR SCHEME 3 ;
KEY ALT+E, ""
DEFINE PAD _3lo0rxpti OF (m.cMenuName) PROMPT "查看(\<V)" COLOR SCHEME 3 ;
KEY ALT+V, ""
DEFINE PAD _3lo0rxptj OF (m.cMenuName) PROMPT "帮助(\<H)" COLOR SCHEME 3 ;
KEY ALT+H, ""
ON PAD _3lo0rxpth OF (m.cMenuName) ACTIVATE POPUP (a_menupops[1])
ON PAD _3lo0rxpti OF (m.cMenuName) ACTIVATE POPUP (a_menupops[2])
ON PAD _3lo0rxptj OF (m.cMenuName) ACTIVATE POPUP (a_menupops[3])
DEFINE POPUP (a_menupops[1]) MARGIN RELATIVE SHADOW COLOR SCHEME 4
DEFINE BAR 1 OF (a_menupops[1]) PROMPT "复制" ;
KEY CTRL+C, ""
DEFINE BAR 2 OF (a_menupops[1]) PROMPT "粘贴" ;
KEY CTRL+V, ""
DEFINE POPUP (a_menupops[2]) MARGIN RELATIVE SHADOW COLOR SCHEME 4
DEFINE BAR 1 OF (a_menupops[2]) PROMPT "标准型(\<T)"
DEFINE BAR 2 OF (a_menupops[2]) PROMPT "科学型(\<S)"
DEFINE BAR 3 OF (a_menupops[2]) PROMPT "\-"
DEFINE BAR 4 OF (a_menupops[2]) PROMPT "数字分组(\<I)"
DEFINE POPUP (a_menupops[3]) MARGIN RELATIVE SHADOW COLOR SCHEME 4
DEFINE BAR 1 OF (a_menupops[3]) PROMPT "帮助主题(\<H)"
DEFINE BAR 2 OF (a_menupops[3]) PROMPT "关于计算器(\<A)"
ACTIVATE MENU (m.cMenuName) NOWAIT
IF m.cTypeParm2 = "C"
m.getMenuName = m.cMenuName
m.oFormRef.Name = m.cSaveFormName
ENDIF








谢谢啦