9.3 静态类
来源:互联网 发布:网络舆情内参征订 编辑:程序博客网 时间:2024/04/29 01:10
摘录于《Windows程序(第5版,珍藏版).CHarles.Petzold 著》P305
你需要用 CreateWindow 函数和“静态”(static)窗口类来创建静态子窗口控件。这些都是非常良性的子窗口。它们不接受鼠标或键盘输入,也不会向其父窗口发送 WM_COMMAND 消息。
当你在一个静态子窗口上移动或单击鼠标时,子窗口会俘获 WM_NCHITTEST 消息并向 Windows 返回 HTTRANSPARENT 值。这会导致 Windows 向其底层窗口(通常是其父窗口)发送相同的 WM_NCHITTEST 消息。父窗口通常将该消息传给 DefWindowProc,在那里它会被转换为客户区鼠标消息。
前 6 个静态窗口样式只是简单地在子窗口的客户区内画一个矩形或框架。“RECT”静态样式(左栏)是填充的矩形;三个“FRAME”样式(右栏)是内部没有被填充的矩形边框。
SS_BLACKRECT SS_BLACKFRAME SS_GRAYRECT SS_GRAYFRAME SS_WHITERECT SS_WHITEFRAME“BLACK”、“GRAY” 和 “WHITE” 并不意味实际的黑色、灰色和白色。它们更多的是基于下表所示的系统颜色。
对于这些样式,CreateWindow 调用的窗口文本字段将被忽略。矩形左上角的 x 和 y 坐标是相对于父窗口的。也可以使用 SS_ETCHEDHORZ,SS_ETCHEDVERT 或 SS_ETCHEDFRAME 样式来用白色和灰色创建一个阴影框架。
静态类还包括三个文本样式:SS_LEFT,SS_RIGHT 和 SS_CENTER。这些样式会创建左对齐、右对齐和居中对齐的文本。相应的文本由 CreateWindow 函数的窗口文本参数指定,可以被 SetWindowText 修改。当静态控件的窗口过程显示此文本时,它会使用 DT_WORDBREAK,DT_NOCLIP 和 DT_EXPANDTABS 等参数来调用 DrawText 函数。子窗口矩形框具有文本自动换行功能。
这三个文本样式子窗口的背景颜色通常是 COLOR_BTNFACE,文本本身颜色是 COLOR_WINDOWTEXT。你可以俘获 WM_CTLCOLORSTATIC 消息,调用 SetTextColor 和 SetBkColor 分别改变文本颜色和背景颜色,同时返回背景画刷的句柄。这将在 COLORS1 程序中讨论并实现。
最后,静态类还包括两个窗口样式,分别为 SS_ICON 和 SS_USERITEM。然而,当它们被用来作为子窗口控件时,这些样式是毫无意义的。我们会在讨论对话框的时候再次讨论它们。
- 9.3 静态类
- 静态成员-静态方法-静态类
- java静态变量,静态方法,静态类
- 静态类、静态变量、静态方法
- C#静态变量、静态方法、静态类
- 静态类,静态函数,静态变量
- C# 静态类,静态变量,静态函数
- 静态类、静态字段和静态方法
- C# 静态成员 静态方法 静态类
- 静态类
- 静态类
- 静态类
- 静态类
- 静态类
- 静态类
- 静态类
- 静态类
- 静态类
- 项目记录01--客unity,服erlang--框架net
- Maven: The Complete Reference
- 构造函数 垃圾回收器 字符串 线程
- cocoapod使用
- android broadcast
- 9.3 静态类
- 如何判断一个未安装的APK是Launcher应用
- Linux下find命令与grep命令
- android SpannableString与SpannableStringBuilder
- Java学习:Timer与ScheduledExecutorService的区别
- Linux查找文件内容和文件位置
- 《Maven: The Complete Reference》Chapter 1 Introducing Apache Maven
- Swing实现潜艇大战
- 添加引用dll后,报错“未能找到类型或命名空间名称...”