当前位置:DOS资源站资料中心入门文章 → wbat教程第三部分:布局--对话框、菜单、文本的布局设计

wbat教程第三部分:布局--对话框、菜单、文本的布局设计

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2008-4-30 1:16:57

           

   <一般信息>

    一个布局可以自成一个文件,也可以跟其他的布局单元合在一起。每个
布局都用“标签”作为标识。

    标签以一个冒号为前导符,标签名没有字长限制。

    布局是一个纯 ASCII 本文。用方括号[]括起来的对话框的控件可以被
放置在布局中的任何地方。那么一个布局以什么标志结束呢?答案是当遇到
以冒号开头的行。(注意:必须是冒号,而不能是空格。)

    布局总是产生一个矩形的区域, 这个矩形的大小取决于最长的行和行的
数目。对话框将加在一个框架(由上下左右各一条线组成)上。如果你想要
更多的空间,请用空格和空行填充。

注意:为防止你的编辑器将一行后面的空白字段截去,可用字符“^”来标
记行的结束(不要担心,符号“^”不会显示出来)。

    <布局中的变量>

    程序运行时,布局中的变量(被%符号括起)会被替代,就跟批处理一
样。然而在控件中请不要使用变量(如:按钮)。

    现在教你一招,我们可以限制变量的长度。看一个例子:

在布局中:%var%___          此时变量的字符长度就被限制为8位(其中
下划线占了三位)。

 所有资料及WBAT工具可以在本站下载 地址:http://cmdos.net/soft/sort017/down-613.html

在程序文件中:set var=superhero

在输出中:输出superher,少了一个o,原因是变量长度被限制了。
(如果字符串长度不足8位,那么将会用空格填满。)

      <布局风格>

    WBAT从WBAT.INI文件里读取颜色和其他的设定。你可以创建你最喜欢的设置,并将它用于你的所的对话框和其他的WBAT输出。

    当然,正如之前所提到的,你也可以用变量来临时改写INI文件中的所有设置(变量名=W项目名)。例如:

SET Wbutton=black on +cyan
SET WrightESC=0
SET Wradiosymbol=254

(注意:对话框颜色也可以在box/menu/list指令中指定。)

   <对话框的框架>

    你可以在INI文件中为对话框框架定义一个不同的图案,比如说这样:
BoxFrame="|-|| ||_|"

中央的字符应该是空白,因为它将填充对话框。不过用上面的效果不好,你可以这样:

BoxFrame="谀砍 忱馁"

 所有资料及WBAT工具可以在本站下载 地址:http://cmdos.net/soft/sort017/down-613.html
 

   <对话框阴影>

    我们可以在ini文件中设置对话框阴影的颜色,修改“Shadow=+black”可以为“Shadow”设置一个可识别的颜色。如果要关掉阴影, 请设置“shadow=NONE”。

   <对话框标题>

    对话框标题可在布局单元中标签所在行中指定(必须用双引号括起来)。

     例如,在布局单元中有标签“:label”和对话框标题“Title”:

:label "Title"
……

标题将位于对话框的中间。颜色由INI文件里的BoxTitle项指定。


       <对话框的高亮文本>

    要高亮显示一个单词或文本段,可在单词或文本段的开始和结束处加符号“~”(但在控件中无法实现该功能)。高亮文本的颜色由INI里的BoxHi定义。


         <特别的ESC按钮>

    如果你希望在对话框的右上角有Windows风格[x]按钮,请将它加入到布局文件的标签行里。

例如:
:label [x]
……

其中方括号“[]”是不可缺少的,然而任何符号都可用来代替“x”。

注意:点一下[x]按钮有与按退出键相同的效果。
 

   <布局中的控件>

    所有的控件都被括在方括号[]里。方括号中的第一个字符决定控件的类
型:

[$ varname ] 输入栏
[!] 复选框
[.] 单选按钮
[? button ] 退出按钮
[ button ] (其他的)普通按钮或菜单条目

    退出按钮看起来和任何其他的按钮一样("?" 问号不显示),但它触发
的是ESC键。

    关于控件的详细情况我们已经在第一部分中讨论过,在此不再复述。


       <热键>

    我们可以改变ini文件中的“HotKey=”的值来修改热键的标记颜色。要
屏蔽热键功能,可设置“HotKey=NONE”。

    按钮或菜单项目的第一个字符是默认的热键字符。在多个按钮的第一个
字符相同时,可标记其他的字符为热键字符。此时,只需在该字符前加个“
&”符号。例如:

对于按钮,有“[ continue ][ ca&ncel ]”,此时cancel按钮的热键变为n

注意:
热键字母也可以与ALT键组合使用。(当光标是在一个输入栏中的时候,可
以用“alt+热键字母”的方法达到在输入栏外按热键的效果。)

“&”符号也可用于快速对话框。

“&”符号也决定哪个词作为变量返回(见第五部分的第三节)

对于单独的按钮,热键可以被一个拖尾的“&”符号取消。例如:
[ button& ][ cancel]
由于button后有一个“&”,因此button键的热键被取消。

       <文本输出>

    默认情况下,文本将以基于屏幕当前的颜色显示。在WBAT.INI里没有默
认的文本颜色。

    我们可以在输出文本前先清屏(修改整个窗口的颜色),然后再为文本
指定颜色。

例如:
@echo off
wbat box ok
wbat cls! text 2,4 (+brown on cyan)@hero.txt:hero
pause

     <倒计时显示>

    利用wbat你可以实现倒计时功能,并且倒计时可在对话框的任何位置显
示(但是不能在控件中显示, 该功能也不能用于快速对话框)。如何实现
呢?我们可以在布局中用记号“#?”标出倒计时的位置。

看一个例子:

在布局文件hero.txt中
:hero
        #?
[ ok ]     [cancel]
:

在程序中
@echo off
wbat box @hero.txt:hero #1,15
pause

程序中的“15”在运行时会传递给“#?”,使得对话框显示倒计时15秒。这
个对话框将在15秒之后关闭,并返回标记按钮的返回码。(注意:用户的任
何输入都会取消倒计时,此时计数会被“--”代替。)
 

    <布局中的特别符号>

“[”用于标记按钮或其他控件,直到出现“]”为止。

“&”用于标记热键字符(只能在按钮里使用)。

“%”用于标记环境变量,和在批处理文件中一样。

“~”在文本显示的时候,用“~”括起来的那部分文本会高亮显示。

“#”标记文本的标题栏(只能用在最左一列)。

(万一你要在指定的地方使用上述的符号作为可见的字符,请双倍使用它们
。)

“#?”布局中的倒计时标记。

“^”标记一行的结束。

“:”作为标签的前导符,也标记了某布局单元的结束。(注意:冒号前不
能加别的字符,包括空格。)

“_”下划线为变量的输出保留空间(需要紧跟在变量的后面)。
  所有资料及WBAT工具可以在本站下载 地址:http://cmdos.net/soft/sort017/down-613.html