回 帖 发 新 帖 刷新版面

主题:一段代码的问题

Private Sub.Command_Click()

' 1变量和变量的尺寸
Dim xloc, yloc
' 2设置X变量和Y变量到窗体中心
xloc = scalewidth / 2
yloc = scaleheigh / 2
' 3显示弹出式菜单
PopuMenu mnuedit, vbpopupmenucenteralighn or vbpopumenurightbutton, xloc, yloc,


上面这段代码是一个弹出式菜单的代码,我刚刚在初级VB教程中看到的,中间有几句话我看不懂(书上有没有说明)所以跑来向高人请教

首先1这是一个命令按钮单击事件,我就不明白为什么老师定义变量尺寸的时候用xloc和yloc 这两个单词,是不是用别的单词替换如"xchang, ykuan" 也行? 这个xloc ,yloc 到底是什么意思啊?

再有3,popumenu 我知道是弹出式菜单的意思,但是他后面的这个mnuedit是什么意思啊?
vbpopupmenucenteralighn可以分解为vb popupmenu centeralighn (vb 弹出式菜单)后面这个centeralighn到底是什么意思?

or vbpopumenurightbutton( vb  弹出式菜单  鼠标右键) 句子的末尾xloc yloc 又要写上来干什么?


总而言之:最重要的问题就出现在这句
  
'3显示弹出式菜单
PopuMenu mnuedit, vbpopupmenucenteralighn or vbpopumenurightbutton, xloc, yloc,

我是一点也不懂!注译是显示菜单,可是我却看不明白,能逐字逐句的帮我解释一下好吗?我会给你高分并且结帖.






回复列表 (共3个回复)

沙发

变量名不能与VB的保留字或关键字相同,除此之外,可以是任何字符或字符+数字的形式,xloc、yloc你可以声明为X坐标、Y坐标,也可以声明为甲、乙。
  mnuedit是菜单名。因为如果有多个菜单的话,你要弹出哪一个呢?所以在这里必须指明。
vbpopupmenucenteralign 和 vbpopumenurightbutton 是两个常数,前者表示弹出式菜单的于 x 坐标居中位;后者表示不论使用鼠标右按钮还是左按钮, 弹出式菜单中的项目都响应鼠标单击。
  最后的xloc、yloc表示菜单弹出的位置。
  建议你多看看VB帮助,如果你看了帮助中的PopuMenu,就会明白后面几个参数的意义。

板凳

1、你的理解是对的。你不但可以用“xchang, ykuan”,甚至可以用“横方向,竖方向”之类的汉字。loc应该是位置这个词的缩写吧,这么写只是为了便于阅读程序时理解。

2、mnuedit是一个已经设计好的隐藏着的菜单的名称(name)。要不然,假定我们是计算机,运行到这里,没有这个词,只是告诉我们改弹出菜单了,我们给弹出哪一个菜单呢?这个是必须的。

3、vbpopupmenucenteralign,是说弹出的时候,按照下面的xloc作为菜单的中间位置,而不是左边缘,也不是右边缘。

4、vbpopumenurightbutton,我不知道。

5、不写xloc、yloc,弹出到什么地方呢?尽管我们知道了是要求把某一点作为中间,但是是哪一点呢?

6、要知道某一项的作用,删除他看看结果有什么不同。

7、如秋水兄所言,多使用F1。

8、下面的例子足可见人和计算机的不同。
例如我们要输出一个变量。
x=8
print x
这样可以输出一个8.这是正常的、正确的程序。
但是如果:
x=8
print
计算机将会输出一个空行。
如果然人来运行这个,人就要问编程序的人了:①你给x赋个值,下面却没有使用;②你prin后边没有输出参数列表。综合看,你很有可能是要想输出x的值,请确认。
转回来再说“句子的末尾xloc yloc 又要写上来干什么?”并不因为给一个变量赋了值,计算机就知道要吧这个变量自动补充道下面相邻的语句中。而要求我们使用语句参数的方式写在正确的位置上。(当然,一些特殊的函数和参数不在此列;还有将来是不是会有这样一种语言普遍使用这种方式设置参数,我也不敢否定)。

3 楼


在两位高手的教导下我已经完全明白了上面代码的意思了,看来VB的代码真的要好好背下来,知道的越多,编程序的时候就越轻松,我看的是<<VB从入门到精通>>的教程,上面老师已经讲的很详细了,有的地方我可能是看的时候没有注意,比如上面代码中的"munedit"这个词-----的确是作者输入的菜单标题("菜单编辑")的名称.在你们的提示下我又看了一遍,发现了这个我漏看的地方,这回轻松了我又可以继续的学习下去了.谢谢大家!

---------------------------在此结贴.

我来回复

您尚未登录,请登录后再回复。点此登录或注册