静态文本框控件的美化CStatic
VC通用控件都是灰色,当对程序界面进行美化时,使用通用控件就和美化后的程序界面不搭配,在VB,C#中,可以很方便的更改控件背景颜色,但在VC中就不能,需要我们自己来完善这方面的功能。我在这只简单的介绍一些,大家有兴趣的话,可以到http://www.vbkbase.com(VC知识库)中去搜索查看相关内容。 在VC60中新建一个对话框工程,添加一个新类,根据你要美化的控件选择对应的基类,如我要美化STATIC控件,就选择CStatic做为基类,新类名为CStaticEx。 在新类中添加两个类成员变量,一个为控件的背景色,一个为文字的颜色: private: COLORREF m_BackColor; COLORREF m_TextColor; 在构造函数中对这两个变量进行初始化,我初始化为黑底白字 m_BackColor=RGB(0,0,0); m_TextColor=RGB(255,255,255); 为CStaticEx加入WM_PAINT消息,在WM_PAINT消息处理函数OnPaint中加入美化控件的代码 { CPaintDC dc(this); // device context for painting CDC memdc; CBrush m_Brush,*m_Oldbrush; CBitmap bitmap; CRect rect; CString strWindowText; int x,y; CSize size; //得到区域 GetClientRect(&rect); //得到文本 this->GetWindowText(strWindowText); //创建兼容的内存位图句柄 memdc.CreateCompatibleDC(&dc); bitmap.CreateCompatibleBitmap(&dc, rect.Width(), rect.Height()); memdc.SelectObject( &bitmap ); //得到文字尺寸 size=memdc.GetTextExtent(strWindowText); //创建画刷,画背景色 m_Brush.CreateSolidBrush(m_BackColor); m_Oldbrush=memdc.SelectObject(&m_Brush); memdc.FillRect(&rect,&m_Brush); memdc.SelectObject(m_Oldbrush); m_Brush.DeleteObject(); //文字 y=rect.top; x=rect.right/2-size.cx/2 ; memdc.SetBkColor(m_BackColor); memdc.SetTextColor(m_TextColor); memdc.TextOut(x,y,strWindowText); //画图 dc.BitBlt(rect.left, rect.top, rect.Width(), rect.Height(), &memdc, rect.left, rect.top, SRCCOPY); } 在对话框上添加一个STATIC控件,命名为IDC_STATICTEST,为其添加一个成员变量CStatic m_StaticTest; 将CStaticEx类的头文件添加到对话框类的头文件中; 将CStatic m_StaticTest 更改为CStaticEx m_StaticTest; 编译,运行就可以看到效果了! 文章出处:http://www.diybl.com/course/3_program/vc/vc_js/200878/132216.html
静态文本框控件的美化CStatic的更多相关文章
- wxpython 支持python语法高亮的自定义文本框控件的代码
在研发闲暇时间,把开发过程中比较重要的一些代码做个珍藏,下面的代码内容是关于wxpython 支持python语法高亮的自定义文本框控件的代码,应该是对大家也有用. import keywordimp ...
- 『Asp.Net 组件』第一个 Asp.Net 服务器组件:自己的文本框控件
代码: using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace DemoWebControl ...
- 继承的文本框控件怎么响应EN_CHANGE等消息
继承的文本框控件如何响应EN_CHANGE等消息?我从CEdit继承了一个CMyEdit类,想在这个类里填写它的一些消息.我在消息映射表里写的是MESSAGE_HANDLER(EN_CHANGE, O ...
- css input checkbox复选框控件 样式美化的多种方案
checkbox复选框可能是网站中常用的html元素,但大多数人并不满意它的默认样式,这篇文章就讲讲如何实现input checkbox复选框控件 样式美化效果. 资源网站大全 https://55w ...
- Android控件之EditText(输入文本框控件)
一.EditText控件概述 EditText是一个非常重要的组件,可以说他是用户和Android应用进行数据传输窗口 有了他就等于有了一扇和Android应用传输的门,通过他用户可以把数据传输给A ...
- Android控件_TextView(显示文本框控件)
一.TextView控件的常用属性 1.android:id——控件的id 2.android:layout_width——设置控件的宽度 wrap_content(包裹实际文本内容) fill ...
- .Net Core使用视图组件(ViewComponent)封装表单文本框控件
实例程序的界面效果如下图所示: 在表单中的搜索条件有姓名,学号,成绩.他们在一行中按照水平三等分排列. 在cshtml中用html实现上述表单效果的的代码如下: <form class=&quo ...
- jquery cleditor 光标经常点不进去问题解决方法 bootstrap 富文本框 控件
cleditor 光标点不进去,原因是内嵌的html代码段 body没有赋值默认高度. 解决方法1.赋值options.bodyStyle 设置min-height值.缺点:不能跟随设备更新最低高度 ...
- AJAX 控件集之TextBoxWatermark(水印文本框)控件
功能: 可以让TextBox控件初始化的时候拥有水印文字.属性: TargetControlID :要使用具有水印效果的TextBox控件ID. WatermarkCssCla ...
随机推荐
- 定制Banner
1.修改Banner (1)在SpringBoot启动的时候会有一个默认启动的图案 (2)在src/main/resources下新建一个banner.txt (3)通过http://patorjk. ...
- 观察者模式(Observe Pattern)
观察者模式: 当对象存在一对多关系时,使用观察者模式(Observe Pattern).例如:当一个对象被修改时,会通知它的依赖对象. 介绍: 1.意图:定义对象的一种一对多的依赖关系,当一个对象的状 ...
- JS浏览器获取宽高
screen.availHeight is the height the browser's window can have if it is maximized. (including all th ...
- python 多线程 生产者消费者
import threading import time import logging import random import Queue logging.basicConfig(level=log ...
- System Center Configuration Manager 2016 域准备篇(Part1)
本系列指南如何从Microsoft安装最新的Configuration Manager基准版本.较新的可用基准版本System Center Configuration Manager(当前分支)版本 ...
- SQL Server 08版与14版处理重复行的方式
在项目中,利用循环拼接成了插入多行数据的SQL语句: Insert into table(col1,col2)vaules(value11,value21); Insert into table(co ...
- Yii2 components api/controller
When we wrote API, those controllers need to implement the following feature: 1. return JSON format ...
- javascript:理解try...catch...finally
以前,我一直喜欢用console.log(do some thing)去执行输出的类型和值,想马上看到弹出的信息,就会直接在浏览器alert()一下,这些是基础知识. 稍微复杂一点点,就要用到判断语句 ...
- Unity结合Flask实现排行榜功能
业余做的小游戏,排行榜本来是用PlayerPrefs存储在本地,现在想将数据放在服务器上.因为功能很简单,就选择了小巧玲珑的Flask来实现. 闲话少叙.首先考虑URL的设计.排行榜无非是一堆分数sc ...
- Android(java)学习笔记154:采用HttpClient提交数据(qq登录案例)
1.Apache -Httpclient HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程工具包 ...