| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 533 人关注过本帖
标题:请教高位行家:vfp9权威一书中一例题,有一句代码“ON BAR 1 OF 菜单2 ME ...
只看楼主 加入收藏
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
结帖率:79.38%
收藏
已结贴  问题点数:20 回复次数:7 
请教高位行家:vfp9权威一书中一例题,有一句代码“ON BAR 1 OF 菜单2 MESSAGEBOX("你好!")”是何意思?程序执
SET SYSMENU TO
SET SYSMENU AUTOMATIC
DEFINE MENU MyMenu BAR     &&建立菜单
DEFINE PAD FileMenu OF MyMenu PROMPT "菜单标题(\<F)";
    KEY ALT+F,""
ON PAD FileMenu OF MyMenu ACTIVATE POPUP 菜单1

DEFINE POPUP 菜单1         &&可以将该语句替换为下列语句重新查看执行效果
* DEFINE POPUP 菜单1 MARGIN
DEFINE BAR 1 OF 菜单1 PROMPT "我的菜单项1"
DEFINE BAR 2 OF 菜单1 PROMPT "我的菜单项1"
DEFINE BAR 3 OF 菜单1 PROMPT "我的菜单项1" MRU
ON BAR 1 OF 菜单1 ACTIVATE POPUP 菜单2

DEFINE POPUP 菜单2
DEFINE BAR 1 OF 菜单2 PROMPT "我的子菜单项"
ON BAR 1 OF 菜单2   MESSAGEBOX("你好!")    &&表示何意思?程序执行没有动静?

ACTIVATE MENU MyMenu NOWAIT
SET MARK OF BAR 1 OF 菜单1 TO .T. &&为“我的菜单项1”添加标记

[ 本帖最后由 sylknb 于 2012-12-10 17:07 编辑 ]
搜索更多相关主题的帖子: 菜单 
2012-12-10 16:55
jichabc
Rank: 2
等 级:论坛游民
威 望:2
帖 子:26
专家分:36
注 册:2011-3-30
收藏
得分:0 
执行程序你得点选菜单2 我的子菜单项1 你就看到效果了!
2012-12-10 17:17
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
楼上说的对
运行 测试一下不是就知道了
2012-12-10 17:53
jichabc
Rank: 2
等 级:论坛游民
威 望:2
帖 子:26
专家分:36
注 册:2011-3-30
收藏
得分:0 
就是出现一个“你好”的提示窗口呀!
2012-12-10 18:13
bccn201203
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:680
专家分:1140
注 册:2012-3-14
收藏
得分:0 
请楼主看一下VFP帮助文件中这方面的内容。
ON BAR 命令
请参阅 示例
 全部折叠 全部展开
指定当从一个菜单中选择一个特定的菜单项时被激活的菜单或菜单栏。

 
ON BAR nMenuItemNumber OF MenuName1   [ACTIVATE POPUP MenuName2
   | ACTIVATE MENU MenuBarName]
 

参数
nMenuItemNumber OF MenuName1
指定菜单项的编号和菜单项的菜单,该菜单项激将激活另外的菜单或菜单栏。菜单中的每一个项都可以具有指定给它的另外一个菜单或菜单栏。凡具有指定菜单或菜单栏的菜单项,右边都有一个箭头。该箭头表示选中此项时激活额外的菜单或菜单栏。如果用 DEFINE POPUP ... MARGIN 定义菜单,则在每一菜单项上都为层叠式子菜单箭头留出空间。若在创建菜单时不使用 MARGIN 子句,层叠式子菜单箭头可能会改写菜单项最后一个字符。
ACTIVATE POPUP MenuName2
指定选择菜单项时要激活的菜单名。使用不带 ACTIVATE POPUP 的 ON BAR 命令,将从菜单项中释放菜单。
ACTIVATE MENU MenuBarName
指定选择菜单项时要激活的菜单栏名。使用不带 ACTIVATE MENU 的 ON BAR 命令,将从菜单项中释放菜单栏。
说明
一个可以显示和激活其它菜单的菜单称为层叠式子菜单。当选中菜单中的菜单项时,使用 ON SELECTION BAR 或 ON SELECTION POPUP 可以执行一条命令。

菜单或菜单栏可以是用户自定义的(由 DEFINE POPUP 或 DEFINE MENU 创建),或是 Visual FoxPro 菜单系统的一部分。

示例
下例演示了一个层叠式子菜单系统。创建一个包含 2 个菜单栏标题的菜单栏 mnuDinner 。每个标题都用 ON PAD 激活名为 popMainCourse 或 popDessert 的菜单。名为 popMainCourse 和 popDessert 的菜单分别使用 3 条 ON BAR 命令,为其菜单项列表指定名为 popBurger、popPizza 和 popPie 的附加菜单。还有 2 条 ON BAR 命令为 popOlives 和 popPie 菜单项指定附加菜单。

选中一个菜单时,ON SELECTION POPUP ALL 执行一个名为 yourchoice 的过程来激活一个窗口并显示该选择。根据 POPUP( ) 和 PROMPT( ),返回的菜单名和菜单项的内容(文本)来确定此次选择。

  复制代码
DEFINE WINDOW wOrder FROM 10,0 TO 13,39
DEFINE MENU mnuDinner
DEFINE PAD padOne OF mnuDinner PROMPT '\<Main Course' KEY ALT+M, ''
DEFINE PAD padTwo OF mnuDinner PROMPT '\<Dessert'   KEY ALT+D, ''
ON PAD padOne OF mnuDinner ACTIVATE POPUP popMainCourse
ON PAD padTwo OF mnuDinner ACTIVATE POPUP dessert
DEFINE POPUP popMainCourse MARGIN MESSAGE ;
   '今天我们有汉堡和比萨饼'
DEFINE BAR 1 OF popMainCourse PROMPT '\<Hamburgers'
DEFINE BAR 2 OF popMainCourse PROMPT '\<Pizza'
ON BAR 1 OF popMainCourse ACTIVATE POPUP burger
ON BAR 2 OF popMainCourse ACTIVATE POPUP pizza
DEFINE POPUP burger MARGIN MESSAGE ;
   '您喜欢什么汉堡?'
DEFINE BAR 1 OF burger PROMPT '\<Ketchup'
DEFINE BAR 2 OF burger PROMPT '\<Mustard'
DEFINE BAR 3 OF burger PROMPT '\<Onions'
DEFINE BAR 4 OF burger PROMPT '\<Pickles'
DEFINE POPUP pizza MARGIN MESSAGE ;
   '这儿有能用的调料'
DEFINE BAR 1 OF pizza PROMPT '\<Anchovies'
DEFINE BAR 2 OF pizza PROMPT '\<Green Peppers'
DEFINE BAR 3 OF pizza PROMPT '\<Olives'
DEFINE BAR 4 OF pizza PROMPT '\<Pepperoni'
ON BAR 3 OF pizza ACTIVATE POPUP olives
DEFINE POPUP olives MARGIN
DEFINE BAR 1 OF olives PROMPT '\<Black' MESSAGE '黑橄榄?'
DEFINE BAR 2 OF olives PROMPT '\<Green' MESSAGE '绿橄榄?'
DEFINE POPUP dessert MARGIN MESSAGE '我们提供饭后甜品'
DEFINE BAR 1 OF dessert PROMPT '\<Brownies'
DEFINE BAR 2 OF dessert PROMPT '\<Cookies'
DEFINE BAR 3 OF dessert PROMPT '\<Ice Cream'
DEFINE BAR 4 OF dessert PROMPT '\<Pie'
ON BAR 4 OF dessert ACTIVATE POPUP pie
DEFINE POPUP pie MARGIN MESSAGE '要什么派?'
DEFINE BAR 1 OF pie PROMPT '\<Blueberry'
DEFINE BAR 2 OF pie PROMPT '\<Cherry'
DEFINE BAR 3 OF pie PROMPT '\<Peach'
DEFINE BAR 4 OF pie PROMPT '\<Rhubarb'
ON SELECTION POPUP ALL DO yourchoice
ACTIVATE MENU mnuDinner
PROCEDURE yourchoice
ACTIVATE WINDOW wOrder
CLEAR
DO CASE
   CASE POPUP( ) = 'BURGER'
      @ 0,0 SAY '一份 ' + POPUP( ) + ' 定单:'
      @ 1,0 SAY '您安排的汉堡是 ' + LOWER(PROMPT( ))
   CASE POPUP( ) = 'PIZZA'
      @ 0,0 SAY '一份 ' + POPUP( ) + ' 定单:'
      @ 1,0 SAY '您安排的比萨饼是 ' + LOWER(PROMPT( ))
   CASE POPUP( ) = 'OLIVES'
      @ 0,0 SAY '一份 ' + POPUP( ) + ' 定单:'
      @ 1,0 SAY '您安排的比萨饼是 ' ;
         + LOWER(PROMPT( )) + ' olives'
   CASE POPUP( ) = 'DESSERT'
      @ 0,0 SAY '一份 ' + POPUP( ) + ' 定单:'
      @ 1,0 SAY '您安排 ' + LOWER(PROMPT( )) + ' 作为饭后甜品'
   CASE POPUP( ) = 'PIE'
      @ 0,0 SAY '一份 ' + POPUP( ) + ' 定单:'
      @ 1,0 SAY '您安排 ' + LOWER(PROMPT( )) + ' 派'
ENDCASE
WAIT WINDOW
DEACTIVATE WINDOW wOrder
RETURN
 

看样子楼主是不喜欢看书的人,我帮楼主看了一下,摘录在此。
2012-12-10 19:36
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
正因为没有出现"你好!",所以才来请教各位
2012-12-10 20:57
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
收藏
得分:0 
楼主给出的代码不全

相互学习,互相交流,共同提高。
2012-12-10 21:24
月沐庭轩
Rank: 9Rank: 9Rank: 9
来 自:京城
等 级:贵宾
威 望:17
帖 子:393
专家分:1106
注 册:2011-7-24
收藏
得分:20 
SET SYSMENU TO
SET SYSMENU AUTOMATIC
DEFINE MENU MyMenu BAR     &&建立菜单
DEFINE PAD FileMenu OF MyMenu PROMPT "菜单标题(\<F)";
    KEY ALT+F,""
ON PAD FileMenu OF MyMenu ACTIVATE POPUP 菜单2&&&&此处改为菜单2,才可以选择到。

DEFINE POPUP 菜单1         &&可以将该语句替换为下列语句重新查看执行效果
* DEFINE POPUP 菜单1 MARGIN
DEFINE BAR 1 OF 菜单1 PROMPT "我的菜单项1"
DEFINE BAR 2 OF 菜单1 PROMPT "我的菜单项1"
DEFINE BAR 3 OF 菜单1 PROMPT "我的菜单项1" MRU
ON BAR 1 OF 菜单1 ACTIVATE POPUP 菜单2

DEFINE POPUP 菜单2
DEFINE BAR 1 OF 菜单2 PROMPT "我的子菜单项"
ON SELECTION BAR 1 OF 菜单2   MESSAGEBOX("你好!")    &&此处缺少一句SELECTION

ACTIVATE MENU MyMenu NOWAIT
SET MARK OF BAR 1 OF 菜单1 TO .T. &&为“我的菜单项1”添加标记

楼主以后要注意仔细看看帮助,多调试自己的程序。

[ 本帖最后由 月沐庭轩 于 2012-12-10 21:37 编辑 ]

坚持学习vfp,QQ:306805680
2012-12-10 21:35
快速回复:请教高位行家:vfp9权威一书中一例题,有一句代码“ON BAR 1 OF 菜单2 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024569 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved