菜单?
我在计算器界面上添加了一个菜单栏 但是怎么用它 呵呵 加完了竟然束手无策要用菜单下面的功能怎么办 ?
我用记事本打开了菜单的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