已经在主表单中 的INIT 事件 输入了
do txl.mpr with this,.t. (其中txl 就是系统主菜单)
[此贴子已经被作者于2005-11-4 16:48:32编辑过]
请参考以下资料:
--------------------------------------------------------------------------------
顶层表单中菜单调用注意事项
显示于顶层表单中的菜单的调用注意事项
* 要将该菜单与你的顶层表单联系,
* 从你的顶层表单的 INIT 中用以下语法执行该菜单:
* 语法: DO WITH [,|][]
* oFormRef - 表单对象引用 (一般是 THIS)
* cMenuname - 菜单名字 (这在添加菜单时是必须的 - 参见下面说明)
* lRename - 更名你的表单的 Name 属性
* lUniquePopups - 决定是否为弹式菜单生成唯一标识
* 示例:
* PROCEDURE Init
* DO mymenu.mpr WITH THIS,.T.
* ENDPROC
* 如果你计划运行你的顶层表单的多个实例,使用第二个选项参数. 逻辑值参数 lRename 将修改你的
* 表单的 name 属性为传递给菜单的同一个名字,在你的代码中如果你直接用名字引用表单可能会造
* 成冲突.
* 也能也需要在表单释放时移去菜单,这样它不会保持在内存中,除非你想在稍后时间在一个新表单中激活它.
* 如果你在上例中传递可选的参数 lRename 为 .T.,
* 你可以在表单的 Destroy 事件中象以下显示的那样,方便地移去菜单.
* 在使用顶层表单的多个实例时,该方案是理想的.
* 示例:
* PROCEDURE Destroy
* RELEASE MENU (THIS.Name) EXTENDED
* ENDPROC
* 用 Append/Before/After 定位选项:
* 你可能会在通用选项对话框中设置 Location 选项来添加一个菜单到一个已存在的顶层表单.
* 要这样做, 你必须传递相关的新菜单的名字. 在这里需要第二个参数. 如果你最初以 lRename
* 参数 = .T.创建菜单, 那么你可以象下面一样用代码更新菜单:
* 示例:
* DO mymenu2.mpr WITH THISFORM,THISFORM.name
*
* 使用 lUniquePopups:
* 如果你在你的应用程序中多次运行该菜单, 如相同的顶层表单的多个实例, 你应该以 .T. 传递
* lUniquePopups 参数,这样会生成唯一弹式菜单名以避免可能的冲突.
* 示例:
* PROCEDURE Init
* DO mymenu.mpr WITH THIS,.T.,.T.
* ENDPROC
*
* 注意: 在 DO WITH [,|][]
* 中一共可以传递九个参数,但菜单中只使用了三个.第 4-9 个参数你可自由地用于你的代码中。