Win32 学习笔记_静态编辑控件(StaticEdit)
1.控件的创建
// 创建静态文本框(StaticEdit) HWND hStaticEdit = CreateWindowEx(0, TEXT("Static"), TEXT("StaticEdit1"), WS_VISIBLE | WS_CHILD | SS_LEFT, 10, 10, 100, 30, hWnd, NULL, hInstance, 0); // 创建静态文本,水平居中 HWND hStaticEdit2 = CreateWindowEx(0, TEXT("Static"), TEXT("StaticEdit2"), WS_VISIBLE | WS_CHILD | WS_BORDER|SS_CENTER, 10, 50, 100, 30, hWnd, NULL, hInstance, 0); // 创建显示图标的静态文本框 HWND hStaticEdit3 = CreateWindowEx(0, TEXT("Static"), NULL, WS_VISIBLE | WS_CHILD | SS_ICON, 10, 90, 100, 30, hWnd, NULL, hInstance, 0); HICON hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1)); SendMessage(hStaticEdit3, STM_SETICON, (WPARAM)hIcon, 0); // 创建显示位图的静态文本框 HWND hStaticEdit4 = CreateWindowEx(0, TEXT("Static"), NULL, WS_VISIBLE | WS_CHILD | SS_BITMAP, 10, 130, 100, 30, hWnd, NULL, hInstance, 0); HBITMAP hBitmap = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BITMAP1)); SendMessage(hStaticEdit4, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hBitmap); |
效果图:
2.控件样式
SS_BITMAP |
位图将显示在静态控件中。 文本是位图的名称, (不是资源文件中其他地方定义的文件名) 。 样式忽略 nWidth 和 nHeight 参数;控件会自动调整自身大小以适应位图。 |
SS_BLACKFRAME |
一个框,以与窗口框架相同的颜色绘制框架。 此颜色在默认配色方案中为黑色。 |
SS_BLACKRECT |
用当前窗口框架颜色填充的矩形。 此颜色在默认配色方案中为黑色。 |
SS_CENTER |
一个简单的矩形,并将矩形中的文本居中。 文本在显示之前设置格式。 沿行末尾延伸的单词会自动包装到下一个居中线的开头。 超过控件宽度的单词将被截断。 |
SS_CENTERIMAGE |
位图以包含它的静态控件居中。 控件的大小不会调整,因此将剪裁控件的位图太大。 如果静态控件包含一行文本,则文本在控件的工作区中垂直居中。 |
SS_EDITCONTROL |
静态控件复制多行编辑控件的文本显示特征。 具体而言,平均字符宽度的计算方式与编辑控件相同,并且函数不显示部分可见的最后一行。 |
SS_ENDELLIPSIS |
如果字符串的末尾不适合矩形,则会截断并添加省略号。 如果字符串末尾的单词超出矩形的限制,则会在不省略号的情况下被截断。 使用此样式将强制控件的文本位于一行中,没有换行。 与 SS_PATHELLIPSIS 和 SS_WORDELLIPSIS进行比较。 |
SS_ENHMETAFILE |
增强型图元文件将显示在静态控件中。 文本是图元文件的名称。 增强型图元文件静态控件具有固定大小;将缩放图元文件以适应静态控件的工作区。 |
SS_ETCHEDFRAME |
使用 EDGE_ETCHED 边缘样式绘制静态控件的框架。 有关详细信息,请参阅 DrawEdge 函数。 |
SS_ETCHEDHORZ |
使用 EDGE_ETCHED 边缘样式绘制静态控件的上边缘和下边缘。 有关详细信息,请参阅 DrawEdge 函数。 |
SS_ETCHEDVERT |
使用 EDGE_ETCHED 边缘样式绘制静态控件的左右边缘。 有关详细信息,请参阅 DrawEdge 函数。 |
SS_GRAYFRAME |
具有与屏幕背景相同的颜色绘制的框, (桌面) 。 默认配色方案中此颜色为灰色。 |
SS_GRAYRECT |
一个用当前屏幕背景色填充的矩形。 默认配色方案中此颜色为灰色。 |
SS_ICON |
要显示在对话框中的图标。 如果控件作为对话框的一部分创建,则文本是图标的名称, (不是资源文件中其他地方定义的文件名) 。 如果控件是通过 CreateWindow 或相关函数创建的,则文本是图标的名称, (不是在与 hInstance 参数为 CreateWindow 参数指定的模块中指定的模块中定义的文件名) 。 |
SS_LEFT |
一个简单的矩形,并将矩形中的文本左对齐。 文本在显示之前设置格式。 沿行末尾延伸的单词会自动包装到下一个左对齐行的开头。 超过控件宽度的单词将被截断。 |
SS_LEFTNOWORDWRAP |
一个简单的矩形,并将矩形中的文本左对齐。 选项卡已展开,但单词未包装。 将剪裁超过行尾的文本。 |
SS_NOPREFIX |
防止解释控件文本中任何和 () & 字符作为快捷键前缀字符。 这些字符以删除和删除并带下划线的字符串中的下一个字符显示。 此静态控件样式可以包含在任何定义的静态控件中。 可以将 SS_NOPREFIX 与其他样式组合在一起。 当文件名或其他可能包含和 () & 的字符串必须显示在对话框中的静态控件中时,这非常有用。 |
SS_NOTIFY |
当用户单击或双击控件时,发送父窗口 STN_CLICKED、 STN_DBLCLK、 STN_DISABLE和 STN_ENABLE 通知代码。 |
SS_OWNERDRAW |
静态控件的所有者负责绘制控件。 每当需要绘制控件时,所有者窗口都会收到 WM_DRAWITEM 消息。 |
SS_PATHELLIPSIS |
将字符串中间的字符替换为省略号,以便结果适合指定的矩形。 如果字符串包含反斜杠 (\) 字符, SS_PATHELLIPSIS 在最后一个反斜杠后保留尽可能多的文本。 使用此样式将强制控件的文本位于一行中,没有换行。 与 SS_ENDELLIPSIS 和 SS_WORDELLIPSIS进行比较。 |
SS_REALSIZECONTROL |
调整位图以适应静态控件的大小。 例如,更改区域设置可以更改系统字体,因此控件可能会调整大小。 如果静态控件具有位图,则位图将不再适合该控件。 此样式位决定了位图的自动重新定义以适应其控件。 |
SS_REALSIZEIMAGE |
指定使用实际资源宽度并使用 LoadImage 加载图标。 SS_REALSIZEIMAGE 始终与 SS_ICON一起使用。 |
SS_RIGHT |
一个简单的矩形,将矩形中的文本右对齐。 文本在显示之前设置格式。 沿行末尾延伸的字词会自动包装到下一个右对齐行的开头。 超过控件宽度的单词将被截断。 |
SS_RIGHTJUST |
具有SS_BITMAP或SS_ICON样式的静态控件的右下角在调整控件大小时保持固定。 仅调整顶部和左侧,以适应新的位图或图标。 |
SS_SIMPLE |
一个简单的矩形,并在矩形中显示一行左对齐的文本。 不能以任何方式缩短或更改文本行。 此外,如果控件被禁用,控件的文本不会灰显。 |
SS_SUNKEN |
在静态控件周围绘制一个半沉没的边框。 |
SS_TYPEMASK |
复合样式位,用于在 SS_* 样式位上使用 OR 运算符。 可用于屏蔽给定位掩码的有效SS_* 位。 请注意,这已过期,并且未正确包含所有有效样式。 因此,不应使用此样式。 |
SS_WHITEFRAME |
一个框,用与窗口背景相同的颜色绘制框架。 此颜色是默认配色方案中的白色。 |
SS_WHITERECT |
用当前窗口背景色填充的矩形。 此颜色是默认配色方案中的白色。 |
SS_WORDELLIPSIS |
截断任何不适合矩形的单词并添加省略号。 使用此样式将强制控件的文本位于一行中,且不换行。 |
3.控件消息
STM_GETICON 获得控件的图标句柄 WPARAM=0,LPARAM=0,RETURN=HICON
STM_GETIMAGE 获得控件的图标,位图,光标句柄,WPARAM=IMAGE_BITMAP(IMAGE_CURSOR,IMAGE_ICON), LPARAM=0,RETURN=HBITMAP(HCURSOR,HICON)
STM_SETICON 设置控件的图标, WPARAM=HICON,LPARAM=0,RETURN=以前的HICON
STM_SETIMAGE 设置控件的图标,位图,光标,WPARAM=(IMAGE_HBITMAP,IMAGE_ICON,IMAGE_CURSOR), LPARAM=(HBITMAP,HICON,HCURSOR),返回原来的句柄
4.控件通知消息
在父窗口的WM_COMMAND消息中捕获控件的通知消息
STN_CLICKED 控件单击消息,具有SS_NOTIFY样式才有效,WPARAM=LOWORD(控件ID),HIWORD(指定的通知代码), LPARAM=控件句柄
STN_DBLCLK 控件双击消息,具有SS_NOTIFY样式才有效,WPARAM=LOWORD(控件ID),HIWORD(指定的通知代码), LPARAM=控件句柄
STN_DISABLE 禁用控件消息,具有SS_NOTIFY样式才有效,WPARAM=LOWORD(控件ID),HIWORD(指定的通知代码), LPARAM=控件句柄
STN_ENABLE 启用控件消息,具有SS_NOTIFY样式才有效,WPARAM=LOWORD(控件ID),HIWORD(指定的通知代码), LPARAM=控件句柄
WM_CTLCOLORSTATIC 绘制控件背景色和文本颜色,WPARAM=HDC,LPARAM=控件句柄(HWND)
5.实例:
1.修改静态控件的背景色和文本颜色
HDC hdc = (HDC)wParam; if ((HWND)lParam == GetDlgItem(hWnd, 10001)) { SetTextColor(hdc, RGB(0, 120, 215)); SetBkMode(hdc, TRANSPARENT);//OPAQUE,TRANSPARENT g_hBkBrush1=CreateSolidBrush(RGB(255, 174, 201)); return (LRESULT)g_hBkBrush1; } |
Win32 学习笔记_静态编辑控件(StaticEdit)相关推荐
- Python tkinter 学习笔记(2)-- 控件、组件(二)
Python tkinter 学习笔记(1)-- 第一个窗口之HelloWorld 教程 Python tkinter 学习笔记(2)-- 控件.组件(一) > 续上一章节 Python tki ...
- C# 学习笔记(8) 控件的跨线程访问
C# 学习笔记(8) 控件的跨线程访问 本文参考博客 C#多线程 https://www.cnblogs.com/dotnet261010/p/6159984.html C# 线程与进程 https: ...
- 数字IC设计学习笔记_静态时序分析STA_ STA基本概念
数字IC设计学习笔记 STA基本概念 1. STA基本概念 2. 时序弧概念 Timing Arc 3. 建立时间和保持时间概念 4. 时序路径概念Timing Path 5. 时钟域概念clock ...
- Vue学习笔记:Element时间控件设置某一个日期禁止选择
Vue学习笔记:Element时间控件添加一段时间禁止选择 需求:时间控件,当天之前禁止选择,某一个日期的之前时间禁止选择 文档: 代码实现:在时间控件上添加 :picker-options=&quo ...
- 安卓学习笔记18:常用控件 - 按钮、图像视图和图像按钮
文章目录 零.学习目标 一.按钮控件 1.继承关系图 2.常用属性 二.图像视图 1.继承关系图 2.常用属性 三.图像按钮 1.继承关系图 2.常用属性 四.教学案例 - 通过按钮缩放图片 (一)运 ...
- Win32 学习笔记_列表控件(ListBox)
ListBox控件 1. 创建控件 // 创建ListBox控件 HWND hListBox = CreateWindowEx(0, TEXT("ListBox"), NULL, ...
- 安卓学习笔记17:常用控件 - 编辑框
文章目录 零.学习目标 一.继承关系图 二.编辑框常用属性 三.教学案例 - 用户注册 (一)运行效果 (二)涉及知识点 (三)实现步骤 1.创建安卓应用[UserRegistration] 2.将M ...
- Coolite Toolkit学习笔记三:基本控件之Button、TextField、DataField、ComboBox
Button.TextField.DataField.ComBox这些控件好象也没什么好学的,任何一个学过ASP.NET的朋友都应该会使用这些控件,Coolite Toolkit里的这些控件相比标准的 ...
- 安卓开发学习笔记1:简单控件
此文章仅为本人在学习安卓开发时的一些笔记 界面显示逻辑处理 使用XML标记.描绘应用界面,使用Java书写程序逻辑 使用XML描述APP界面 使用XML文件描述APP界面 一个界面布局可以被多处代码复 ...
- Duilib学习笔记《03》— 控件使用
在前面已经对duilib有个一个基本的了解,并且创建了简单的空白窗体.这仅仅只是一个开始,如何去创建一个绚丽多彩的界面呢?这就需要一些控件元素(按钮.文本框.列表框等等)来完善. 一. Duilib控 ...
最新文章
- java map set_java中Map、Set、List的简单使用教程(快速入门)
- C++深入理解虚函数
- 使用Spring Cloud Function框架进行面向函数的编程
- 针对双系统ubuntu16.04卡死及系统没有声音解决方法
- 手机优酷缓存的视频在哪找
- vue中的 $children 和 $parent
- CSS基本知识之常用的选择器分类
- java 请求 https_JAVA后端请求HTTPS 的URL 遇到的问题
- HTML5学习笔记简明版(6):新增属性(1)
- 计算机网络第七版(谢希仁)第五章——传输层课后习题答案(上)
- c语言车牌号5位数,为何有的车牌是五位数字,有的加英文字母?终于知道原因了!...
- 简单嵌入式系统软件架构
- r语言平均值显著性检验_用R语言解读统计检验-F检验
- idea 网页项目无法显示图片
- emi滤波matlab,【原创】EMI 滤波器设计从入门到精通(三)
- SUCCEEDED 和 FAILED的作用和用法
- h5 禁止微信内置浏览器调整字体大小方法
- 【WINDOWS / DOS 批处理】for命令详解(一)
- python荣联云通讯短信平台
- uvc camera MTK平台调试总结