幽幽
 
posts - 51,  comments - 28,  trackbacks - 0

这篇文章翻译至MSDN2005,给自己学习,也给所有觉得它有用的人,文中难免有翻译不到位或者错误的地方,望高手指正。译者:欧昊川(转载麻烦注明出处及译者)

2008年5月4日

这个概述讨论了窗口的一些特性,如窗口类型、状态、大小及位置。

1、窗口类型(WindowStyles)
这一节描述层叠窗口、弹出窗口、子窗口、分层窗口、仅处理消息的窗口这五种类型。

1.1层叠窗口(OverlappedWindows)
层叠窗口是一个具有标题栏、边框和客户区的顶层窗口;也就是说它适合做为应用程序主窗口。它也可以具有一个系统菜单,最小和最大化按钮,以及滚动条。一个层叠窗口被典型地用于包含所有上述组件的应用程序主窗口。

通过在CreateWindowEx中指定WS_OVERLAPPED或者WS_OVERLAPPEDWINDOW样式,一个应用程序就能创建一个层叠窗口。假如你使用第一个样式,那么创建的窗口就具有一个标题栏和边框;假如你使用第二个,那么窗口就具有一个标题栏,可以调整大小的边框,系统菜单,以及最大最小化按钮。

1.2弹出窗口(Pop-upWindows)
弹出窗口是一个非凡的层叠窗口,它被用于显示在应用程序主窗口之外的对话框,消息框以及其他临时窗口。标题栏对弹出窗口来说是可选的;除此之外,弹出窗口跟具有WS_OVERLAPPED样式的层叠窗口一样。

你可以通过在CreateWindowEx中指定WS_POPUP样式来创建一个弹出窗口。假如要使用标题栏,就加入WS_CAPTION样式。使用WS_POPUPWINDOW样式来创建一个含有边框和系统菜单的弹出窗口。WS_CAPTION样式必须与WS_POPUPWINDOW样式一起使用才能使系统菜单可见。

1.3子窗口(ChildWindows)
子窗口具有WS_CHILD样式并且它被限制在其父窗口的客户区中。应用程序典型地使用子窗口来把其父窗口的客户区划分成几个功能区域。你可以通过在CreateWindowEx中指定WS_CHILD样式来创建子窗口。

子窗口必须具有一个父窗口。父窗口可以是一个层叠窗口,弹出窗口,或者另外一个子窗口。你可以在CreateWindowEx中指定父窗口。假如你在CreateWindowEx中指定了WS_CHILD样式但是没有指定父窗口,那么系统不会创建这个子窗口。

子窗口只具有一个客户区而没有其他特性,除非这些特性被明确的请求。应用程序可以为子窗口添加标题栏,系统菜单,最小化最大化按钮,边框,以及滚动条。但是子窗口不能具有自定义菜单。假如应用程序指定了一个自定义菜单句柄,那么无论是在它注册这个子窗口类还是创建这个子窗口时,这个菜单句柄都被忽略。假如没有指定边框样式,系统将创建一个无边框窗口。应用程序可以使用无边框的子窗口来划分父窗口的客户区假如想保持这种划分对用户是不可见的话。

下面一节讨论窗口的布置、裁剪、与父窗口的关系、消息四个主题。

1.4窗口布置(Positioning)
系统总是相对于父窗口客户区的左上角来放置子窗口。子窗口的任何部分都不会出现在其父窗口的边框之外。假如应用程序创建一个比父窗口大的子窗口,或者移动子窗口使得一个或者所有子窗口超出了父窗口的边框,那么系统会裁剪子窗口,即在父窗口边框之外的部分不被显示。对父窗口产生影响的行为同样会影响子窗口,这些行为如下:

 

posted on 2008-08-16 13:38 幽幽 阅读(1139) 评论(0)  编辑 收藏 引用 所属分类: Windows

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理



<2008年8月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456

常用链接

留言簿(5)

随笔分类(35)

随笔档案(51)

文章分类(3)

文章档案(3)

相册

我的链接

搜索

  •  

最新评论

阅读排行榜

评论排行榜