FASM--Win32汇编学习10

                 FASM--Win32汇编学习10

本节课中,我们来学习下菜单。

译者注:

    菜单可以说是Windows下最重要的元素之一。windows用它来提供大部分的命令操作。我之前说过,我们在Windows下编程,就要遵循Windows下相应的规则,那么菜单也是一样的。 大家可以看下Windows本身自带的一些应用程序,它们的菜单的基本也是相同的。都是位于标题栏的下方。当然这是我们通过它的外形的综述,那么内在的。我们windows提供的菜单,必须是资源的形式。所以我们必须遵守这样的规则。

 

    有了它,用户可以方便地选择操作命令。用户只要细读一下所有的菜单项就可以明了程序所提供的大概功能,而且可以立即操作,无须去阅读手册。正因为菜单给了用户一种方便的方式,所以您在应用程序中加入菜单时要遵守一定的规则。譬如l一般头两个菜单项是“File”和“Edit”,最后是“Help”,您可以在这中间插入您要定义的菜单项。如果所运行的菜单命令会弹出一个对话框,我们一般在其菜单项后加入(......),菜单是一种资源,除资源外还有其他的像对话框,字符串,图标,位图资源等都是资源。在链接程序的时候将资源加入到可执行文件中,最后我们的执行程序既包括机器指令又包括了资源。您可以在任何文本编辑器中编写脚本文件,在文件中您可以以指令资源呈现出来的外观和其他的一些属性。当然更直观的方法是用资源编辑器,通常资源编辑器都打包在编译环境中,像Visual C++ ,Borland C++ 等。

我们可以按以下方式来定义一个菜单资源。

 

菜单ID  MENU  [DISCARDABLE]

BEGIN

     [Menu List here]

END

当然BEGIN END还可以替换成{}C语言的中的风格。我们一般是定义一个顶层菜单,然后在顶层菜单里定义子菜单和一些弹出式菜单等。

好我们按照如上的方式来定义一个菜单。

MyMenu  MENU

{

    [Menu List here]

}

这和C语言中的结构体定义非常相似。MyMenu类似被定义的变量,而MENU类似于关键字。当然您也可以用另外一种办法,那就是用BEGIN和END来代替花括号,这和Pascal语言风格相近。

在顶层菜单项中是一大串MENUITEM和POPUP语句。MENUITEM定义了一个菜单项,当选择后不会激活对话框。它的语法如下:

    MENUITEM  “&text”, ID [,option]

它由关键字MENUITEM开头,紧跟在MENUITEM后面的是菜单项的名称字符串,符号“&”后的第一个字符将会带下划线,它是由该单项的快捷键。ID的作用是当该菜单被选中的时,Windows的消息过程处理函数用来区分菜单项的。毫无疑问,    ID必须是唯一的。option有以下选项。

1.GRAYED 代表该菜单项处于非激活状态,即当选被选中时不会产生WM_COMMAND消息。该菜单项以灰色显示。

2.INACTIVE 代表该菜单项处于非激活状态,即当被选中时不会产生WM_COMMAND消息。该菜单项以正常颜色显示。

3.MENUBREAK 该菜单项和随后的菜单项会显示在新列中。(译者著:比较难描述,请做实验)

4.help 该菜单项和随后的菜单项右对齐。

 

你可以单独

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值