CLabel类可以改变 Static 静态文本颜色、背景,或将静态文本设置为超链接,一网友问我如何改变对话框文本颜色(不是全部改变),找到了这个类,自已做了一个示例程序(The original autor's expamle program is not suit for beginner),推荐给大家试试,有好作品别忘了给我寄一份。
首先下载类的源程序:下载(含我做的示例程序) (269提供链接)
好了,如果是初学VC的朋友,先跟着做示例程序吧,老鸟则自已去看程序吧。
1. 新建项目:在VC6中用MFC新建一个基于对话框的TestStaticLabel项目,并在对话框中加入控件如图所示,为每一个静态文本设置不同的ID。(在Static控件的Properties中.看看我怎么设置的,随心所欲,最好便于记忆,便于今后自己查阅,这是一个良好的编程习惯,此乃废话);
2.在项目中插入类文件:把所有label.cpp和label.h文件copy 到项目文件夹下,Project->Add to Project->Files中选上label.cpp和label.h文件, OK; 怎么样,在ClassView中看到了CLabel类吧。 打开ClassWizard若看不到CLabel类,可关闭ClassWizard(不用关闭VC),在项目文件夹下把TestSaticLabel.clw文件删除,再打开ClassWizard,会看到提示:"The classwizard database doesn't exist,.....,would you like to build it from your source files?",选Yes,出现一个对话框,单击 Add All,再单击OK,好了,在ClassWizard中可以看到CLabel类了。
3.为每个要改变设置的STATIC静态文本增加DDX控制变量在对话框头文件TestSaticLabelDlg.h中加入 #include "label.h";打开ClassWizard,选Member Variables页,选上相应的静态文本ID,单击Add Viriable,在对话框中Category中选control,Variable Type选CLabel,Variable Name由你自己定吧。(把要改变的ID都加上DDX控制变量)
4.静态文本设置方法 在对话框中OnInitDialog()函数中,添加代码:
//其中:以m_ctrl开头的为DDX CLabel控制变量
// TODO: Add extra initialization here m_ctrlStaticXFS.SetFontName("Arial") //for 啸峰工作室 .SetFontSize(30) .SetTextColor(RGB(255,255,0)) .SetFontUnderline(TRUE) .SetBkColor(RGB(0,0,0)) .SetFontItalic(TRUE) .SetFontBold(TRUE) .SetBorder(TRUE) .SetSunken(TRUE);
m_ctrlStaticWWW .SetLink(TRUE) .SetTextColor(RGB(0,0,255)) .SetFontUnderline(TRUE) .SetFontSize(15) .SetLinkCursor(AfxGetApp()->LoadCursor(IDC_CURSOR1));
m_ctrlStaticTellme .SetFontName("System") .SetBkColor(RGB(153,204,153)) .SetTextColor(RGB(255,0,102)) .SetFontSize(20) .FlashBackground(TRUE) .SetFontBold(TRUE);
m_ctrlStaticMail .SetLink(TRUE) .SetTextColor(RGB(0,0,255)) .SetFontUnderline(TRUE) .SetFontSize(15) .SetLinkCursor(AfxGetApp()->LoadCursor(IDC_CURSOR1));
m_ctrlStaticBorder .SetBkColor(RGB(051,102,255)) .SetTextColor(RGB(255,255,255)) .SetFontSize(25) .SetFontBold(TRUE) .SetBorder(TRUE); //border
m_ctrlStaticSuken .SetBkColor(RGB(102,051,255)) .SetTextColor(RGB(255,255,255)) .SetFontSize(25) .SetFontBold(TRUE) .SetBorder(TRUE) .SetSunken(TRUE); //suken
大功告成,Build -> Run 吧,成了吗?
请点击图片进入◆龚建伟技术主页◆
串口通迅(编程源码)、串口调试助手、端口网络通信技术,VC/C编程,移动机器人控制相关技术,Matlab仿真及数据处理 |