[Perl]Win32::GUI Tutorial 官方教学翻译 Part 3 - DialogBox

回复
头像
PerlMonk
渐入佳境
渐入佳境
帖子: 49
注册时间: 2016年09月19日 10:20
联系:

[Perl]Win32::GUI Tutorial 官方教学翻译 Part 3 - DialogBox

帖子 PerlMonk »

翻译:523066680@163.com
主页:Code-By.Org
转载请注明出处

Win32::GUI::Tutorial Part 3

什么是 DialogBox(对话框)?
  • 我们在之前的教程中提到过使用 Win32::GUI::Window->new() 创造一个主窗口。事实上 Win32::GUI
    提供了两种窗体类型。分别是 Win32::GUI::Window 以及 Win32::GUI::DialogBox。

    为什么是两种类型?
    DialogBox 比默认的 Window 窗体多一些扩展功能,但这些扩展功能将带来开销,所以我们为那些不需要扩展
    功能或者不想产生额外开销的用户保留了默认窗体。(事实上 Win32::GUI::DialogBox 也缺少 Win32::GUI::Window 的部分灵活性,这是目前的局限,可能在未来的版本中得到改善)
按键响应
  • 当你使用 DialogBox ,它会自动对按键事件作出响应,Tab 键用来在不同控件之间切换,Shift+Tab 移到上一
    个选项,Escape 取消对话,Enter 键执行默认操作。

    Tab 和 Shift+Tab
    • 为控件设置 -tabstop => 1 以使控件支持 tab 切换。(未设定该参数的控件将被排除)
    Escape
    • 通过对控件设置 -cancel 选项来使 escape 奏效。当用户按下 Esc 键,触发该控件的单击事件
      具体操作取决于你的 Click 响应函数。
    Return/Enter
    • 为控件设置 -ok => 1 以使其支持回车键。在按下 Enter 时自动触发该控件的 Click 事件。如果选中了其他按钮,则按下 Enter 时响应的是其他选中按钮的 Click 事件。

      还有一些其他的按键行为,这些行为要么无法编辑修改,要么无关紧要。( What? )
其他
  • 类似按键处理,DialogBox 和 基础窗体 的主要区别是
    * DialogBox 没有最小化最大化图标
    * DialogBox 有一个 "?" (帮助)图标
    * DialogBox 看上去不太一样
    * DialogBox 不能用鼠标调整大小

    当前版本的 Win32::GUI 模块提供 -dialoggui 选项来开启/关闭 默认按键响应机制。在 Window 窗体
    中 设置 -dialoggui 为 1 以开启按键响应。在 DialogBox 窗体中设置 -dialoggui 为 0 以关闭按键响应。

    在下一章,我们将进一步介绍如何为应用程序增加功能。
译注
  • 两种窗体类型的创建:
    $main = Win32::GUI::Window->new()
    or
    $main = Win32::GUI::DialogBox->new()
[Finished in 0.6s]
回复

在线用户

正浏览此版面之用户: 没有注册用户 和 2 访客