MFC编程入门之二十(常用控件:静态文本框)
上一节讲了颜色对话框之后,关于对话框的使用和各种通用对话框的介绍就到此为止了。从本节开始将讲解各种常用控件的用法。常用控件主要包括:静态文本框、编辑框、单选按钮、复选框、分组框、列表框、组合框、图片控件、列表控件、树形控件和进度条控件等等。本节先来讲解静态文本框的使用。
控件的通知消息
在讲静态文本框的使用之前,先大概讲讲控件的通知消息。
当控件有事件发生时,它会向父窗口发送通知消息。最常发生的事件就是鼠标单击了,此时控件会向父窗口发送BN_CLICKED消息,实际上也就是给父窗口发送WM_COMMAND消息,在wParam参数中包含有通知消息码(鼠标单击时的通知消息码就是BN_CLICKED)和控件ID,lParam参数中包含了控件的句柄。在MFC消息映射机制概述中讲过,消息就是由三个部分组成:消息值、wParam参数和lParam参数。
为控件通知消息添加消息映射和消息处理函数的方法,之前不止一遍讲过了。现在再来具体说明下,控件的消息映射宏的格式大致是:
ON_通知消息码(nID, memberFun)
nID参数是控件的ID,memberFun参数是消息处理函数名。例如,ON_BN_CLICKED(IDC_BUTTON1, &CDlg::OnBnClickedButton1)。此消息映射宏应添加到BEGIN_MESSAGE_MAP和END_MESSAGE_MAP之间。
消息处理函数声明的语法形式为:
afx_msg void memberFun();
静态文本框的使用
在前面的举例中,大家应该也清楚了静态文本框的一般作用,就是用于显示文字说明。MFC提供了CStatic类,封装了对静态文本框的所有操作。
如果我们想在程序中动态创建静态文本框,而不是像前面那样直接从Toolbox中拖到对话框模板上,那么就需要使用CStatic类的成员函数Create。Create函数的原型如下:
virtual BOOL Create(
LPCTSTR lpszText,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID = 0xffff
);
参数说明:
lpszText:指定要在控件中显示的文字。如果为NULL则不会显示任何文字。
dwStyle:指定静态控件的风格。静态文本框一般都是对话框或其他窗口的子窗口,而且是可见的,所以应该包含WS_CHILD和WS_VISIBLE风格,另外,MSDN中说明,还可以为其设置“static contol styles”中风格的任意组合。下面大概为大家说明几个风格:
SS_BITMAP:一个位图将显示在静态文本控件中,Create函数的lpszText参数字符串是资源文件中定义的位图名。此风格忽略宽度和高度参数,静态控件自动调整它的尺寸来适应位图。
SS_BLACKFRAME:指定一个具有与窗口边界同色的框,默认为黑色。
SS_BLACKRECT:指定一个具有与窗口边界同色的实矩形,默认为黑色。
SS_CENTER:是显示的正文居中对齐,正文可以换行。
SS_GRAYFRAME:指定一个具有与屏幕背景同色的边框。
SS_GRAYRECT:指定一个具有与屏幕背景同色的实矩形。
SS_ICON:使控件显示一个在资源中定义的图标,图标的名字有Create函数的lpszText参数指定,图标自动调整它的尺寸。
SS_LEFT:左对齐正文,正文能回绕。
SS_LEFTNOWORDWRAP:左对齐正文,正文不能回绕。
SS_NOTIFY:使空间能向父窗口发送鼠标事件消息。
SS_RIGHT:右对齐正文,可以回绕。
SS_SIMPLE:使静态正文在运行时不能被改变并使正文显示在单行中。
SS_WHITEFRAME:指定一个具有与窗口背景同色的框,默认为白色。
SS_WHITERECT:指定一个具有与窗口背景同色的实心矩形,默认为白色。
我们在对话框模板添加静态文本框时,可以在静态文本框的属性页中设置他的风格,很多都与上面的风格是对应的,例如,Simple属性就相当于SS_SIMPLE风格。
rect:指定静态控件的位置和大小,它可以是RECT结构体类型,也可以是CRect类的对象。
pParentWnd:指定静态控件的父窗口,通常是一个CDialog对象,不能是NULL。
nID:指定静态控件的ID。
CStatic类的成员函数简介
简单介绍下CStatic类的主要成员函数,下面是成员函数列表。
GetBitmap:获取由SetBitmap函数设置的位图的句柄。
GetCursor:获取由SetCursor设置的光标的句柄。
GetEnhMetaFile:获取由SetEnhMetalFile设置的增强图元文件的句柄。
GetIcon:获取由SetIcon设置的图标的句柄。
SetBitmap:设置要在静态控件中显示的位图。
SetCursor:设置要在静态控件中显示的光标图片。
SetEnhMetaFile:设置要在静态控件中显示的增强图元文件。
SetIcon:设置要在静态空间中显示的图标。
除了上述成员函数外,由于CStatic是CWnd的派生类,CWnd的很多成员函数也可以使用,例如,GetWindowText、GetWindowRect、SetWindowText等。
转载于:https://www.cnblogs.com/mupiaomiao/p/6229634.html
MFC编程入门之二十(常用控件:静态文本框)相关推荐
- 鸡啄米之VS2010/MFC编程入门之二十四(常用控件:列表框控件ListBox)
目录 一.目的: 1.点击列表框某个变量后,编辑框就显示出来这个变量名字 一.参考: 1.VS2010/MFC编程入门之二十四(常用控件:列表框控件ListBox) ①总结:good:亲测有效,适合多 ...
- VS2010/MFC编程入门之二十(常用控件:静态文本框)
上一节鸡啄米讲了颜色对话框之后,关于对话框的使用和各种通用对话框的介绍就到此为止了.从本节开始鸡啄米将讲解各种常用控件的用法.常用控件主要包括:静态文本框.编辑框.单选按钮.复选框.分组框.列表框.组 ...
- VS2010/MFC编程入门之二十九(常用控件:列表视图控件List Control 下)
上一节是关于列表视图控件List Control的上半部分,简单介绍了列表视图控件,其通知消息的处理和有关结构体的定义.本节继续讲解下半部分,包括列表视图控件的创建.CListCtrl类的主要成员函数 ...
- VS2010/MFC编程入门之二十三(常用控件:按钮控件的编程实例)
上一节VS2010/MFC编程入门教程中鸡啄米讲了按钮控件Button.Radio Button和Check Box的基本用法,本节就继续讲按钮控件的内容,通过一个实例让大家更清楚按钮控件在实际的软件 ...
- 【MFC】学习笔记:常用控件之组合框(Combo Box)
01.目录 目录 01.目录 02.控件介绍 03.控件的消息通知函数 04.创建组合框控件及成员函数介绍 4.1 组合框的创建 4.2 CComboBox类的主要成员函数 05.应用实例 06.总结 ...
- Android入门(七) | 常用控件
文章目录 TextView 控件:文本信息 Button 控件:按钮 EditText 控件:输入框 ImageView 控件:图片 ProgressBar 控件:进度条 AlertDialog 控件 ...
- Android基础学习(二)—— 常用控件
TextView 显示文本内容 Button 按钮 EditText 输入框 ImageView 显示图片 ProgressBar 进度条 ToolBar 自定义标题栏 AlertDialog 对话框 ...
- 常用控件:列表框控件ListBox
列表框控件简介 列表框给出了一个选项清单,允许用户从中进行单项或多项选择,被选中的项会高亮显示.列表框可分为单选列表框和多选列表框,顾名思义,单选列表框中一次只能选择一个列表项,而多选列表框可以同时选 ...
- VS2010/MFC编程入门之二(利用MFC向导生成单文档应用程序框架)
原文:http://www.jizhuomi.com/software/141.html 解决方案与工程 鸡啄米在VS2010的使用介绍中已经讲了解决方案与工程的概念,这里再重提一下.每个应用程序都作 ...
最新文章
- 通用分页存储过程(转自邹建)
- EWSD常用状态解释
- LINQ系列:LINQ to SQL Exists/In/Any/All/Contains
- 练习2-1 Programming in C is fun!
- linux文件软链接与硬链接
- Activity的四种启动模式-图文并茂
- java hibernate4 学习心得
- SAP BC430 课程中文自学笔记
- 基于javaweb的音乐网站
- nexus6 android 6.0 root,全网首发:一键ROOT大师ROOT Nexus 6
- Excel 高阶学习视频收藏
- 网页.php文件怎么运行,php文件怎么打开运行,浏览器访问php文件
- [FOI2020]手链强化
- 韩文打字速度测试软件,韩语软件推荐:好用的韩语拼写分写检查器
- 2021-2027全球与中国彩色TFT液晶屏市场现状及未来发展趋势
- 李想的理想,不太「理想」
- 论实力和智慧,美的微晶冰箱有点东西!
- 电信ZNHG60光猫信息虚标
- 发现身边感动,寻找最美龙江测绘人
- 实现断网收银_超市收银系统排名前五
热门文章
- jQuery 表单验证插件 jQuery Validation Engine 使用
- 判断文件是否损坏_Bash技巧:把变量赋值为换行符,判断文件是否以换行符结尾...
- idea 报 Cannot access alimaven
- 虎牙改名字服务器升级维护中,王一博“虎牙直播”被占id,无奈改了名字,新名字却被吐槽...
- 【编辑器】VSCode界面美化,图标与主题插件大全
- 【CCCC】L2-029 特立独行的幸福 (25分),模拟题,set用法
- 【PAT乙】1033 旧键盘打字 (20分) 字符串
- C++文本处理造轮子
- 【luogu3374】模板 树状数组 1
- mysql addslashes c_addslashes()用途与php怎样防止mysql注入?