静态控件主要用:对用户界面起说明和装饰作用。
静态控件根据其风格属性可派生出:静态图片控件、静态文本控件和静态自绘控件。
静态文本控件用来显示文本。
静态图片控件可以用来显示位图、图标、方框和图元文件,在图片控件中显示图片的好处是不必操心图片的重绘问题。
静态控件不能接收用户的编辑输入。
静态控件可以用CreateWindow或CreateWindowEx函数来创建。
根据用途使用下列常数来指定静态控件的风格。
常数 | 说明 |
SS_BITMAP | 在静态控件中显示一幅位图(.BMP),由控件的文本(TEXT)指定一幅包含在资源中的位图文件(非文件名),该风格忽略控件的宽度和高度,控件将自动调整大小以适应位图。 |
SS_ICON | 在静态控件中显示一幅图标(.ICO),由控件的文本(TEXT)指定一幅包含在资源中的图标文件(非文件名),该风格忽略控件的宽度和高度,控件将自动调整大小以适应图标。 |
SS_ENHMETAFILE | 在静态控件中显示一增强幅图元文件(.EMF)。由控件的文本(TEXT)指定图元文件名。控件大小固定不变,图元文件按比例缩放显示在控件客户区中。 |
SS_BLACKFRAME | 用系统颜色组的窗口边界色(缺省为黑色)绘制一个边框,框内使用与底部窗体相同的颜色(透明)。 |
SS_BLACKRECT | 用系统颜色组的窗口边界色(缺省为黑色)绘制一个矩形实心控件。 |
SS_GRAYFRAME | 用系统颜色组的屏幕背景色绘制一个边框,框内使用与底部窗体相同的颜色(透明)。 |
SS_GRAYRECT | 用系统颜色组的屏幕背景色绘制一个矩形实心控件。 |
SS_WHITEFRAME | 用系统颜色组的窗口背景色(缺省为白色)绘制一个边框,框内使用与底部窗体相同的颜色(透明)。 |
SS_WHITERECT | 用系统颜色组的窗口背景色(缺省为白色)色绘制一个矩形实心控件。 |
SS_ETCHEDFRAME | 用下凹的3D线条绘制一个边框,框内使用与底部窗体相同的颜色(透明)。 |
SS_ETCHEDHORZ | 用下凹的3D线条绘制控件的上下两边,框内使用与底部窗体相同的颜色(透明)。 |
SS_ETCHEDVERT | 用下凹的3D线条绘制控件的左右两边,框内使用与底部窗体相同的颜色(透明)。 |
SS_RIGHTJUST | 与SS_BITMAP 或 SS_ICON 配合当需要对控件的大小进行自动调整时以控件的右下角为基准,只有控件的上边和左边的位置改变。 |
SS_NOPREFIX | 禁止对字符“&”进行解释,通常字符“&”会被解释成在下一个字符加一个下画线,“&&”会被解释成一个字符“&”,用户可以使用SS_NOPREFIX风格来禁止这项解释。 |
SS_NOTIFY | 当控件被用户单击或双击控件时向父窗口传送STN_CLICKED, STN_DBLCLK, STN_DISABLE, 或 STN_ENABLE 通知消息。 |
SS_OWNERDRAW | 自绘静态控件,每当控件需要重画时,父窗口将收到WM_DRAWITEM消息。 |
SS_REALSIZEIMAGE | 禁止根据位图或图标大小自动进行控件尺寸的调整,如果本常数被设定,大于控件的图片其超出部份将被截去。 |
SS_SUNKEN | 绘制一个下沉的控件。 |
SS_CENTER | 文本显示水平居中,显示之前先对文本进行格式化,超过控件宽度将自动换行。 |
SS_CENTERIMAGE | 文本显示垂直居中。本常数还设定当位图或图标小于控件客户区时使用图片左上角点的颜色填充控件边缘。 |
SS_LEFT | 文本显示居左,显示之前先对文本进行格式化,超过控件宽度将自动换行。 |
SS_LEFTNOWORDWRAP | 文本显示居左,超过控件宽度部份将被截去,不进行自动换行处理。 |
SS_RIGHT | 文本显示居右,显示之前先对文本进行格式化,超过控件宽度将自动换行。 |
SS_SIMPLE | 文本在控件的左上角单行显示,不进行自动换行处理。父窗口进程不能对WM_CTLCOLORSTATIC消息进行处理。 |
当用户在按钮控件上进行各种操作时,其父窗口将收到WM_COMMAND通知消息,同时wParam的低16位带控件的ID。lParam带控件句柄(hWnd),wParam的高16位带有如下表的消息代码。
STN_CLICKED | 用户单击控件。 |
STN_DBLCLK | 用户双击控件。 |
STN_DISABLE | 控件被禁止。 |
STN_ENABLE | 控件被允许。 |
应用程序可以通过调用SendMessage向控件发送如下消息来设定和查询控件各种参数。
uMsg | wParam | lParam | 说明 |
STM_SETIMAGE | 图片类型 | 句柄 | 设置静态图片控件的图像句柄,wParam指定为IMAGE_BITMAP(位图)、IMAGE_ICON(图标)、IMAGE_CURSOR (光标)或IMAGE_ENHMETAFILE(增强型图元文件) |
STM_GETIMAGE | 状态 | 0 | 获取静态图片控件的图像句柄,wParam指定为IMAGE_BITMAP(位图)、IMAGE_ICON(图标)、IMAGE_CURSOR (光标)或IMAGE_ENHMETAFILE(增强型图元文件) |
STM_GETICON | 0 | 0 | 获取静态图片控件的图标句柄。 |
STM_SETICON | 图标句柄 | 0 | 设置静态图片控件的图标句柄。 |