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 参数指定的模块中指定的模块中定义的文件名) 。
图标可以是动画游标。
样式忽略 CreateWindow 参数 nWidth 和 nHeight;控件会自动调整自身大小以适应图标。 它使用 LoadIcon 函数时, SS_ICON 样式只能加载 维度SM_CXICON 和 SM_CYICON的图标。 除了SS_ICON之外,还可以使用SS_REALSIZEIMAGE样式绕过此限制。
如果无法通过 LoadIcon 加载图标,则尝试使用 LoadCursor 将指定的资源加载为游标。 如果太失败,则尝试使用 LoadImage 从设备驱动程序加载。

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_CENTERIMAGE ,则位图或图标 (居中,并根据需要) 剪裁。 如果未指定 SS_CENTERIMAGE ,则位图或图标会拉伸或收缩。
请注意,两个轴中的重新定义是独立的,结果可能具有更改纵横比。
与 SS_REALSIZEIMAGE进行比较。

SS_REALSIZEIMAGE

指定使用实际资源宽度并使用 LoadImage 加载图标。 SS_REALSIZEIMAGE 始终与 SS_ICON一起使用。
SS_REALSIZEIMAGE 使用 LoadImage,重写通常在 SS_ICON 下遵循的过程。 它不加载游标;如果 LoadImage 失败,则不会进一步尝试加载。 它使用实际资源宽度。 静态控件会相应地调整大小,但图标仍与控件的最初指定左边缘和上边缘对齐。
请注意,如果还指定 SS_CENTERIMAGE ,则图标以控件的空间为中心,该空间是使用 CreateWindow 参数 nWidth 和 nHeight 指定的。
与 SS_REALSIZECONTROL进行比较。

SS_RIGHT

一个简单的矩形,将矩形中的文本右对齐。 文本在显示之前设置格式。 沿行末尾延伸的字词会自动包装到下一个右对齐行的开头。 超过控件宽度的单词将被截断。

SS_RIGHTJUST

具有SS_BITMAP或SS_ICON样式的静态控件的右下角在调整控件大小时保持固定。 仅调整顶部和左侧,以适应新的位图或图标。

SS_SIMPLE

一个简单的矩形,并在矩形中显示一行左对齐的文本。 不能以任何方式缩短或更改文本行。 此外,如果控件被禁用,控件的文本不会灰显。

SS_SUNKEN

在静态控件周围绘制一个半沉没的边框。

SS_TYPEMASK

复合样式位,用于在 SS_* 样式位上使用 OR 运算符。 可用于屏蔽给定位掩码的有效SS_* 位。 请注意,这已过期,并且未正确包含所有有效样式。 因此,不应使用此样式。

SS_WHITEFRAME

一个框,用与窗口背景相同的颜色绘制框架。 此颜色是默认配色方案中的白色。

SS_WHITERECT

用当前窗口背景色填充的矩形。 此颜色是默认配色方案中的白色。

SS_WORDELLIPSIS

截断任何不适合矩形的单词并添加省略号。 使用此样式将强制控件的文本位于一行中,且不换行。
与 SS_ENDELLIPSIS 和 SS_PATHELLIPSIS进行比较。

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)相关推荐

  1. Python tkinter 学习笔记(2)-- 控件、组件(二)

    Python tkinter 学习笔记(1)-- 第一个窗口之HelloWorld 教程 Python tkinter 学习笔记(2)-- 控件.组件(一) > 续上一章节 Python tki ...

  2. C# 学习笔记(8) 控件的跨线程访问

    C# 学习笔记(8) 控件的跨线程访问 本文参考博客 C#多线程 https://www.cnblogs.com/dotnet261010/p/6159984.html C# 线程与进程 https: ...

  3. 数字IC设计学习笔记_静态时序分析STA_ STA基本概念

    数字IC设计学习笔记 STA基本概念 1. STA基本概念 2. 时序弧概念 Timing Arc 3. 建立时间和保持时间概念 4. 时序路径概念Timing Path 5. 时钟域概念clock ...

  4. Vue学习笔记:Element时间控件设置某一个日期禁止选择

    Vue学习笔记:Element时间控件添加一段时间禁止选择 需求:时间控件,当天之前禁止选择,某一个日期的之前时间禁止选择 文档: 代码实现:在时间控件上添加 :picker-options=&quo ...

  5. 安卓学习笔记18:常用控件 - 按钮、图像视图和图像按钮

    文章目录 零.学习目标 一.按钮控件 1.继承关系图 2.常用属性 二.图像视图 1.继承关系图 2.常用属性 三.图像按钮 1.继承关系图 2.常用属性 四.教学案例 - 通过按钮缩放图片 (一)运 ...

  6. Win32 学习笔记_列表控件(ListBox)

    ListBox控件 1. 创建控件 // 创建ListBox控件 HWND hListBox = CreateWindowEx(0, TEXT("ListBox"), NULL, ...

  7. 安卓学习笔记17:常用控件 - 编辑框

    文章目录 零.学习目标 一.继承关系图 二.编辑框常用属性 三.教学案例 - 用户注册 (一)运行效果 (二)涉及知识点 (三)实现步骤 1.创建安卓应用[UserRegistration] 2.将M ...

  8. Coolite Toolkit学习笔记三:基本控件之Button、TextField、DataField、ComboBox

    Button.TextField.DataField.ComBox这些控件好象也没什么好学的,任何一个学过ASP.NET的朋友都应该会使用这些控件,Coolite Toolkit里的这些控件相比标准的 ...

  9. 安卓开发学习笔记1:简单控件

    此文章仅为本人在学习安卓开发时的一些笔记 界面显示逻辑处理 使用XML标记.描绘应用界面,使用Java书写程序逻辑 使用XML描述APP界面 使用XML文件描述APP界面 一个界面布局可以被多处代码复 ...

  10. Duilib学习笔记《03》— 控件使用

    在前面已经对duilib有个一个基本的了解,并且创建了简单的空白窗体.这仅仅只是一个开始,如何去创建一个绚丽多彩的界面呢?这就需要一些控件元素(按钮.文本框.列表框等等)来完善. 一. Duilib控 ...

最新文章

  1. java map set_java中Map、Set、List的简单使用教程(快速入门)
  2. C++深入理解虚函数
  3. 使用Spring Cloud Function框架进行面向函数的编程
  4. 针对双系统ubuntu16.04卡死及系统没有声音解决方法
  5. 手机优酷缓存的视频在哪找
  6. vue中的 $children 和 $parent
  7. CSS基本知识之常用的选择器分类
  8. java 请求 https_JAVA后端请求HTTPS 的URL 遇到的问题
  9. HTML5学习笔记简明版(6):新增属性(1)
  10. 计算机网络第七版(谢希仁)第五章——传输层课后习题答案(上)
  11. c语言车牌号5位数,为何有的车牌是五位数字,有的加英文字母?终于知道原因了!...
  12. 简单嵌入式系统软件架构
  13. r语言平均值显著性检验_用R语言解读统计检验-F检验
  14. idea 网页项目无法显示图片
  15. emi滤波matlab,【原创】EMI 滤波器设计从入门到精通(三)
  16. SUCCEEDED 和 FAILED的作用和用法
  17. h5 禁止微信内置浏览器调整字体大小方法
  18. 【WINDOWS / DOS 批处理】for命令详解(一)
  19. python荣联云通讯短信平台
  20. uvc camera MTK平台调试总结

热门文章

  1. 侧边栏评论样式美化 Zibll子比主题美化
  2. 性能大跃进,干翻x86!Arm Neoverse N1服务器处理器抢先解析
  3. 多探索不一样的世界,是人生的一大幸事
  4. matlab 画图 分数线,2010大连中考录取分数线
  5. 【以2-SAT为主题的婚礼UVA11294】
  6. 0420-如何为CDH集成Active Directory的Kerberos认证
  7. 使用django实现京东部分商品数据的爬虫并存入自带的sqlite数据库
  8. 计算机教育专业发展策略论文,职业院校计算机教育现状和改革策略论文
  9. BET测试报告的建立和管理
  10. apm简单压测性能报告