[翻译]Windows CE程序设计(3rd版)Chpter6 对话框和属性页 6.1 对话框

对话框 

       对话框是Windows使用应用程序提供的模版创建的窗口。该模版描述了窗口中控件的类型和布局。对话框管理器(Dialog Manager)--Windows创建和管理对话框的部分--也提供了使用Tab键在控件之间切换焦点和使用Enter键和Escape键进行默认操作的默认功能。另外,Windows提供了默认的对话框窗口类,使得应用程序不必为它可能创建的每一个对话框注册窗口类。

     对话框有两种类型:"有模式(modal)"和"无模式(modeless)".有模式对话框能防止用户使用应用程序,知道对话框被消除。例如,文件打开(File Open)和打印(Print)对话框是有模式的。无模式对话框可以用来与应用程序的其余部分进行交互。Microsoft Pocket Word中的查找(Find)对话框是无模式的,所以用户不需要在主窗口中键入之前消除它。

      像其他窗口一样,尽管对话框窗口过程被构造的方式与标准的窗口过程有些不同,但对话框也有窗口过程。不是将未处理的消息传递给DefWindowProc以进行默认处理,对话框过程如果处理了这个消息,它将返回TRUE,如果它不处理这个消息,就会返回FALSE。Windows提供了默认过程DefDialogProc,以在一些特定的情况下使用--简而言之,就是专用于有自己的窗口类的无模式对话框。

对话框资源模版

        大部分情况下,对于对话框以及控件的大小和位置的描述是通过称为"对话框模板"(dialog template)的资源来提供的。你可以在内存中创建对话框模版,但是除非程序有迫切需要在运行时格式化对话框的大小和形状,否则直接从资源中加载对话框模板时一个很好的选择。在用于菜单这样的其他资源时情况也是一样,对话框模板被包含在资源文件(RC)中。应用程序或者使用模板的名称,或者使用它的资源ID来引用模板。Figure6-1展示了一个对话框。这个对话框将会用作例子在整个对话框怎样运作的讨论中。Fifure6-1中的对话框对应当对话框资源如下所示: (略)##

        对话框模板的语法遵循与菜单资源的语法类似的简单模式。首先是资源的名称或ID,后跟关键字DIALOG,表明下列所述的是对话框模板。可选的discardable关键字后跟对话框的位置和大小。默认情况下,指定的位置是相对于对话框的拥有者窗口的位置。

       对话框中的度量单位不是象素而是"对话框单位"(dialog units)。对话框单位是这样定义的:对于水平单位,它是系统字体中字符的平均宽度的四分之一,对于垂直单位,它是同一字体的字符高度的八分之一。其目的是创建独立于显示技术的度量单位;实际上,对话框仍需要在可能显示对话框的所有显示分辨率下进行测试。你可以使用GetDialogBaseUnits函数来计算象素和对话框单位之间的转换,但你会发现这没有什么必要。目前,大多数具有可视工具的编译器都使程序员不必了解诸如对话框单位这样的术语,但了解在RC文件中对话框的描述方式仍然是一个很好的想法。

      代码的STYLE行指定了用于对话框的样式标志。该样式包括窗口使用的标准窗口(WS_xx)样式标志和一系列只用于对话框的对话框(DS_xx)样式标志。Windows CE支持以下对话框样式:(##)略

       大多数对话框的创建至少要用WS_POPUP,WS_CAPTION和WS_SYSMENU样式标志的某些组合来完成。WS_POPUP样式指出对话框是一个顶级窗口。WS_CAPTION样式提供给对话框一个标题栏。标题栏允许用户到处拖动对话框,同时也是包含对话框标题文本的位置。WS_SYSMENU样式将使对话框在标题栏的右下方有一个Close按钮,从而减少使用命令栏控件来提供Close按钮的需要。注意,Windows CE使用这个标志的方式不同于其他版本的Windows,在其他版本的Windows中使用的这个标志表示系统菜单将被放置在标题栏的末尾。

       EXSTYLE代码行指定了用于对话框的扩展样式标志。对于Windows CE来说,这些标志尤其重要。WS_EX_CAPTION标志告诉对话框管理器在标题栏上紧靠着Close按钮的左边放置一个OK按钮。对于典型的具有小屏幕的Windows CE设备来说,在对话框标题栏上显示OK按钮和Close按钮或(Cancel)按钮能节省保对的空间。WS_EX_CONTEXTHELP扩展样式将在标题栏上的紧靠着OK按钮的左边放置Help按钮。单击这个按钮将导致WM_HELP消息被发送到对话框过程。

     CAPTION代码行指定了对话框的标题栏文本,倘若指定了WS_CAPTION样式,对话框就将具有标题栏。

     描述对话框中空间的类型和位置的行被包括在BEGIN和END关键字中。每个空间或者由某个特殊的关键字指定(控件的一般用法),或者由关键字CONTROL来指定,该关键字是一般的占位符,它能指定放置在对话框中的任意窗口类。在

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值