首页 > 其他分享 >MFC--StaticText静态文本框控件

MFC--StaticText静态文本框控件

时间:2022-12-10 13:37:06浏览次数:50  
标签:控件 MFC 窗口 -- SS WS CTLCOLOR 静态

MFC--StaticText静态文本框控件_静态控件

CStatic类提供了一个Windows静态控件的性能。一个静态控件用来显示一个文本字符串、框、矩形、图标、光标、位图或增强的图元文件。它可以被用来作为标签,框,或用来分隔其它的控件。一个静态控件不接收输入,也不提供输出;但是,如果它是用SS_NOTIFY风格创建的,则它可以通知其父有关设备点击的消息。

添加静态文本框

用工具栏

MFC--StaticText静态文本框控件_静态控件_02

用代码

mystatic.Create(_T("静态文本控件"), WS_CHILD | WS_VISIBLE | SS_LEFT, CRect(10,10,200,100),this,10001);
//参数1:控件标题
//参数2:dwStyle指定静态控件的窗口风格
// 说明:SS(Static Style)开头的表示只能用于CStatic控制。以"WS"(Window Style)开头的常数表示可适用于所有窗口,
// 它们定义在CWnd对象中。CWnd中还有很多以“WS"样式常数。你可以在MFC文档中的CWnd:Create函数中找到它们。
// SS_BITMAP 此风格用于位图,该风格将忽略静态控件的高度和宽度,静态控件将根据位图的大小自动调节自身的尺寸
// SS_BLACKFRAME 建立一个黑色的边框
// SS_BLACKRECT 建立一个黑色的矩形
// SS_CENTER 使文字在静态控件中水平居中
// SS_RIGHT 使文字在静态控件中右对齐
// SS_LEFT 使文字在静态控件中左对齐
// SS_LEFTNOWORDWRAP 在缺省情况下,静态控件把’/n’和’/t’都作为换行标记。只有在设置本风格后,静
//
// SS_CENTERIMAGE 当静态控件用于显示文本时,该风格将使文本在静态控件中垂直居中。当静态控件用于
// 显示位图或图标时,该风格将使位图或图标在静态控件中垂直居中
// 当位图或图标小于静态控件时,静态控件将使用位图或图标左上角的点的颜色填充空白处
// SS_ENHMETAFILE 指定在静态控件中显示一个增强型图元文件。
// 该风格将不会忽略静态控件的高度和宽度,而图元文件将调节自身的大小来适应静态控件的尺寸
// SS_ETCHEDFRAME 建立一个浮雕边框
// SS_ETCHEDHORZ 建立一个边框,并将顶端边框设置为浮雕风格
// SS_ETCHEDVERT 建立一个边框,并将左侧边框设置为浮雕风格
// SS_GRAYFRAME 建立一个灰色的边框。
// SS_GRAYRECT 建立一个灰色的矩形
// SS_ICON 指定在静态控件中显示一个被定义在资源文件中的图标。
// 该风格将忽略静态控件的高度和宽度,静态控件将根据位图的大小自动调节自身的尺寸
// SS_LEFTNOWORDWRAP 在缺省情况下,静态控件把’/n’和’/t’都作为换行标记。只有在设置本风格后,静
// 态控件才把’/t’看作是制表键(缺省时制表键的宽度为8个字符的宽度)
// SS_NOPREFIX 该标志表示终止对前缀字符的处理。通常,本成员函数将前缀助记符’& ’解释为一个指
// 令,即在’& ’后面的字符下面划一下划线。并且将’&& ’解释成一个单个的’& ’指令
// 。通过指令指定该标志,这种处理就不再进行了
// SS_NOTIFY 在缺省情况下,静态控件是不响应鼠标事件的。只有在设置该风格后,当用户单击静态
// 控件时,静态控件才向父窗口发送STN_CLICKED通知
// SS_OWNERDRAW 在指定该风格后,当静态控件在视觉外观发生变化时,该静态控件的父窗口将响应WM_DRAWITEM消息
// SS_SIMPLE 只显示一行文本,文本不能被剪切或替换(父窗口不能处理CTLCOLOR消息)
// SS_SUNKEN 设置一个下沉的静态控件,当静态控件为一个方框时,方框的四边下沉;当静态控件为一个矩形时,整个矩形下沉
// SS_USERITEM 建立一个用户自定义项目。
// SS_WHITEFRAME 建立一个白色的边框。
// SS_WHITERECT 建立一个白色的矩形
//
// WS_BORDER 有一个边框
// WS_CAPTION 具有标题栏的窗口(隐含WS_BORDER风格),不能使用的WS_DLGFRAME风格
// WS_CHILD 创建一个子窗口,不能使用WS_POPUP风格
// WS_CHILDWINDOW 与WS_CHILD风格相同
// WS_CLIPCHILDREN不包括绘制在父窗口的子窗口,当你占用的面积
// WS_DISABLED 窗口最初是被禁用的
// WS_DLGFRAME 双边框,但没有标题
// WS_HSCROLLm 具有水平滚动条的窗口
// WS_VSCROLL 具有垂直滚动条的窗口
// WS_MINIMIZE 窗口最初是最小化的
// WS_ICONIC 与WS_MINIMIZE
// WS_MAXIMIZE 最大化
// WS_MAXIMIZEBOX 有一个“最大化”按钮,必须设置WS_SYSMENU
// WS_MINIMIZEBOX 有一个“最小化”按钮,必须设置WS_SYSMENU
// WS_POPUP 弹出式窗口,不能使用WS_CHILD风格
// WS_SIZEBOX 有一个可调整边框
// WS_SYSMENU 在其标题栏中,有一个控制菜单框
// WS_TABSTOP 指定一个任意数量的控制,通过它,用户可以使用TAB键移动
// WS_TILED 一个重叠的窗口
// WS_VISIBLE 窗口最初是可见的
//
// 参数3:指定静态控件的位置和大小。它可以是一个RECT结构类型的数据或一个CRect类的对象。
//参数4:父窗口,通常是一个CDialog类的对象。它不能是NULL
//参数5:控件ID, 在静态控件中可以省略,nID = 0xffff
//返回值:BOOL如果本成员函数调用成功则返回非零值;否则返回0

 

 

 添加变量

添加变量时必须改一下ID才能添加

添加文本 

属性页

MFC--StaticText静态文本框控件_位图_03

 

代码

mystatic.SetWindowText(_T("语文"));//设置文本

获取文本

CString str;
mystatic.GetWindowText(str);//获取文本
MessageBox(str);

  

属性页

边框 

设置是否有边框

True:

MFC--StaticText静态文本框控件_控件_04

 

 

False:

MFC--StaticText静态文本框控件_静态控件_05

 

通知 

是否接受通知 

 

静态边缘 

是否有静态边缘

MFC--StaticText静态文本框控件_位图_06

 

 

美化CStatic控件(WM_CTLCOLOR消息)

WM_CTLCOLOR消息用来完成对EDIT、STATIC、BUTTON等控件设置背景和字体颜色

在每个控件开始绘制之前,都会向其父窗口发送WMCTLCOLOR通告消息,在该消息的处理函数中(OnCtlColor(pDC, pWnd, nCtlColor)),可以设置控件显示文本的前景色、背景色以及字体。该消息处理函数还要求返回一个画刷的句柄,用于在控件具体的绘制之前擦除其客户区。

右击控件->类向导

MFC--StaticText静态文本框控件_控件_07

 

 

MFC--StaticText静态文本框控件_静态控件_08

 

 

//一个主窗口只需要一个OnCtlColor函数


pDC->SetBkColor(RGB(255, 0, 0)); //设置背景
//注意:修改了所有控件的字体背景色

if (nCtlColor == CTLCOLOR_STATIC) { //只更改静态文本控件
//CTLCOLOR_BTN 按钮控件
//CTLCOLOR_DLG 对话框
// CTLCOLOR_LISTBOX 列表框
// CTLCOLOR_MSGBOX 消息框
// CTLCOLOR_SCROLLBAR 滚动条
// CTLCOLOR_STATIC 静态文本
//CTLCOLOR_EDIT 编辑框


pDC->SetTextColor(RGB(255, 255, 0)); //设置字体颜色
hbr = CreateSolidBrush(RGB(0, 255, 0)); //创建画刷
//修改控件背景色

}

if (pWnd->GetDlgCtrlID() == IDC_STATIC2) { //只修改指定ID的控件
pDC->SetTextColor(RGB(0, 0,255));
}

if (pWnd->GetDlgCtrlID() == 10001) { //修改代码创建的控件
pDC->SetTextColor(RGB(0, 255, 255));
pDC->SetBkMode(TRANSPARENT);//设置指定DC的背景混合模式,背景混合模式用于与文本,填充画刷和当画笔不是实线时
//参数:要设置的模式,其值可以为 OPAQUE 或 TRANSPARENT
// TRANSPARENT 表示透明模式--【文字的背景色就无效】
//返回值:如果函数运行成功,返回当前DC之前的背景模式;如果函数运行失败,返回零

}

示例工程下载:

链接:https://pan.baidu.com/s/1cN_xMms_bh8udK1gUwZd6g      提取码:6666

 

 

 

 

 

 


标签:控件,MFC,窗口,--,SS,WS,CTLCOLOR,静态
From: https://blog.51cto.com/u_11531789/5927539

相关文章