说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

设定StatusBar的文字成不同的颜色-VB资料

HTML文档下载 WORD文档下载 PDF文档下载
设定StatusBar的文字成不同的颜色-VB资料


设定StatusBar上的文字,该文字以StatusBar所在Form的字型设定为准,并以form
的ForeColor为字的颜色,文字过长时,自动会截除
这个程式的实质意义不太大,因为当文字被盖掉後需自行重新再呼叫这个Sub才能再
将文字显示出来,除非我们再使用Subclassing的方式,於statusBar接收到WM_PAINT
时,去呼叫这个SubRoutine,这程式着重於Font的了解

'below is within Form
Private Sub Command1_Click()
Call ShowPanelText(StatusBar1, 1, "这是一个有趣的程式hahahaha")
End Sub

'第一个叁数传入StatusBar
'第二个叁数表示文字要在第几个panel上 显示,由1算起
'第三个叁数是待显示的字串
Private Sub ShowPanelText(StatusBar1 As StatusBar, Pno As Long, ByVal PanelText
As String)
Dim bkcolor As Long
Dim Color As Long
Dim res As Long
Dim aRect As RECT, rect5 As RECT
Dim hfont As Long
Dim hdc2 As Long
Dim TextHeight As Long
Dim tx As TEXTMETRIC
Dim oScaleT As Long, oScaleL As Long, oScaleH As Long, oScaleW As Long
Dim oScaleM As Long

oScaleM = Me.ScaleMode
oScaleT = Me.ScaleTop
oScaleL = Me.ScaleLeft
oScaleH = Me.ScaleHeight
oScaleW = Me.ScaleWidth
Me.ScaleMode = 3

hdc2 = GetDC(StatusBar1.hwnd)
Call GetTextMetrics(Me.hdc, tx) '取得form 字型资讯
hfont = CreateFont(tx.tmHeight, tx.tmAveCharWidth, 0, 0, _
tx.tmWeight, 0, 0, 0, tx.tmCharSet, 0, 0, 0, _
tx.tmPitchAndFamily, Me.Font.Name) '依form的字型产生另一个font
'因为不知如何取得font的handle只好,使用CreateFont的方式来取得 hfont
Call SelectObject(hdc2, hfont) '设字型
res = SetTextColor(hdc2, Me.ForeColor) '设字的颜色
bkcolor = GetSysColor(COLOR_BTNFACE)
SetBkColor hdc2, bkcolor '设字的背景色
SetTextAlign hdc2, TA_TOP
TextHeight = Me.TextHeight(PanelText)
aRect.Top = (StatusBar1.Height - TextHeight) \ 2
If StatusBar1.Style = 0 Then
aRect.Left = StatusBar1.Panels(Pno).Left + 2
aRect.Right = aRect.Left + StatusBar1.Panels(Pno).Width - 6
Else
aRect.Left = StatusBar1.Left + 2
aRect.Right = StatusBar1.Width - 6
End If
aRect.Bottom = StatusBar1.Height
InvalidateRect StatusBar1.hwnd, aRect, 1 '宣告工作区无效,用来重画statusBar
UpdateWindow StatusBar1.hwnd
DrawText hdc2, PanelText, LenB(StrConv(PanelText, vbFromUnicode)), aRect, 0
ReleaseDC StatusBar1.hwnd, hdc2
DeleteObject (hfont)
Me.ScaleMode = oScaleM
Me.ScaleHeight = oScaleH
Me.ScaleTop = oScaleT
Me.ScaleLeft = oScaleL
Me.ScaleWidth = oScaleW
End Sub


'below is within .bas module
Option Explicit
Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Type TEXTMETRIC
tmHeight As Long
tmAscent As Long
tmDescent As Long
tmInternalLeading As Long
tmExternalLeading As Long
tmAveCharWidth As Long
tmMaxCharWidth As Long
tmWeight As Long
tmOverhang As Long
tmDigitizedAspectX As Long
tmDigitizedAspectY As Long
tmFirstChar As Byte
tmLastChar As Byte
tmDefaultChar As Byte
tmBreakChar As Byte
tmItalic As Byte
tmUnderlined As Byte
tmStruckOut As Byte
tmPitchAndFamily As Byte
tmCharSet As Byte
End Type
Declare Function CreateFont Lib "gdi32" Alias "CreateFontA" _
(ByVal H As Long, ByVal W As Long, ByVal E As Long, ByVal O As Long, _
ByVal W As Long, ByVal I As Long, ByVal u As Long, ByVal S As Long, _
ByVal C As Long, ByVal OP As Long, ByVal CP As Long, _
ByVal Q As Long, ByVal PAF As Long, ByVal F As String) As Long
Declare Function GetTextMetrics Lib "gdi32" Alias "GetTextMetricsA" _
(ByVal hdc As Long, lpMetrics As TEXTMETRIC) As Long
Declare Function GetBkColor Lib "gdi32" (ByVal hdc As Long) As Long
Declare Function SetTextColor Lib "gdi32" (ByVal hdc As Long, _
ByVal crColor As Long) As Long
Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, _
ByVal hdc As Long) As Long
Declare Function SetBkColor Lib "gdi32" (ByVal hdc As Long, _
ByVal crColor As Long) As Long
Declare Function SetTextAlign Lib "gdi32" (ByVal hdc As Long, _
ByVal wFlags As Long) As Long
Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, _
ByVal hObject As Long) As Long
Declare Function DrawText Lib "user32" Alias "DrawTextA" _
(ByVal hdc As Long, ByVal lpStr As String, ByVal nCount As Long, _
lpRect As RECT, ByVal wFormat As Long) As Long
Declare Function InvalidateRect Lib "user32" (ByVal hwnd As Long, _
lpRect As RECT, ByVal bErase As Long) As Long

Declare Function UpdateWindow Lib "user32" (ByVal hwnd As Long) As Long
Declare Function GetSysColor Lib "user32" (ByVal nIndex As Long) As Long
Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long

Public Const COLOR_BTNFACE = 15
Public Const TA_TOP = 0

打开/关闭光驱门-VB资料 调用API函数设计ABOUT窗口 -VB资料 功能强大的SendMessage函数 -VB资料 简单计算函数的编写过程-VB资料 将文件大小变成相应的字符串-VB资料 可以直接用API改变textbox的扩展样式-VB资料 快速读取TextBox第N行的数据 -VB资料 VB利用 API 可以直接拨号 VB利用API 使Text框只读 VB利用API创建文件目录 VB利用API函数实现VB特殊窗体的两种方法 VB利用API函数实现无TittleBar窗体的移动 VB利用API在VB5.0中实现清除文档名 VB利用App.PrevInstance防止同一程序执行多次 VB判断应用程序是否仍在运行并设置焦点 巧用VISUAL BASIC的RND()函数 让你的程序不在任务栏中显示 -VB资料 VB如何不用API使文本框属性只读? VB如何从文件中提取图标 VB如何关闭/重新启动计算机? VB如何建立快捷方式? VB如何让窗口始终在最前面? VB如何使你的程序同文件扩展名建立关联? VB如何提高调用WINDOWS API函数编程技巧 VB如何为你的应用程序设置热键? VB如何隐藏鼠标指针 VB如何用api检查任务栏中有多少种输入法 VB如何在函数中传递数量不定的参数? VB使用 kb_event 函数模拟键盘操作 VB使用API获取颜色 VB使用标签控件调出浏览器 软件过程之一————开发过程 如何在水晶报表中利用在程序中生成的dataset来制作报表!!!!!!!!!! 请教C PLUS PLUS 如何运行其他exe程序,请大家... 求助 在哪里可以下载比较经典的C++书籍? ★关于“全选”的问题!★ 关于中文显示的问题 !!!!!! 如何用SQLBulkoprations向表中加入数据,此时应如何设置游标??加急,在线等!! 急:treeview显示成一行文本 最简单的方法是?(问题简单,过来看看) 本人想考个SCJP认证,大家觉得如何???用处大吗??在找工作的过程中? 请教:对话框上的滚动条怎么使用?我设置了,然后将窗体大小缩小(于是对话框有一部分看不见了),可是单击滚动条,不起作用,怎么办?急, 问一个数据库公式的问题! 一个IP发布两个网站的问题(在线等待) 怎样改变资源文件里字体的颜色???菜单里的字体颜色我不会改?有专家指点吗? Python 网络教室采用多播好还是广播好? 下载的问题! 如何新建一个文件夹? 将html文件存放在备注字段中,然后再输出可以吗? 如何控制一个文本框的内容随另一个文本框的内容变化而同步变化? 一个关于窗口的小问题!!!小弟初学DELPHI请多多指教!! 求助 excel导入数据时出错.高手进 请问role是干嘛的? 自动生成图片 datawind如何与window联系起来啊 存储过程同时调用和数据库异地备份问题? 在xsl中如何调用javascript 误删系统盘,救命!!! 请问ACCP和高程考试相比哪个更有份量? 求LeapFTP V2.7.3.600的注册码 5月6日我来CSDN的二周年,散分,纪念。。。。 listbox (湖南)今年非典搞得这样,会耽误报高程吗?今年有人报了吗?怎样报的? ComboBoxEx在 SetImageList 时出错 在DBComboBox中脸上数据库后,为什么进行选择时会出现“违反了Primary 约束“ 关于传递多值的问题 如何从recordset得到数据库的行号 用<%@ include file="xxx.jsp"%>出现的怪问题!求教 有关server.mappath()的问题 J2EE基础问题两三问,追加200分。 问题很简单,但我很急,请帮忙各位。 可用的UDDI 急救!自动隐藏Panel 帮忙 哪里有数据库系统开发的文档下载 急待解决的问题 请问从socket发信息,连续发送几个小数据包出错的情况!! 紧急问题,在线等待! 习近平“现身”中南大学 大学生欢呼雀孙杨因无证驾驶被处罚款2000元并行温州被砍男童收到爱心款超35万 家人叙政府称:日内瓦会议旨在让总统下台则16秒26 温州17岁高二女生单手玩斯诺登谴责美英情报机构为“最恶劣的侵韩总统朴槿惠对朝言论引猜测 称可与金宁波轨道交通:逃票将纳入个人信用信息印度雄心勃勃探火星 英媒议论“与中国中印时隔5年再次联合军演 更多表达政浙医二院对抗菌药动真格 去年有医生被杭州正研究建设“城市风道” 引风进城李克强看望黑龙江受灾群众:不让一个群哥伦比亚一辆巴士坠崖 致13人死亡62013浙江·杭州国际人才交流与合作社会学家:27.6%户籍城镇化率证明“海龟”与“土鳖”结合 浙江发展关键孙杨无证驾驶后续 奥运冠军孙杨昨走进世界俄罗斯人民大会授予普京捍卫大国地多次违纪违规 孙杨被停赛停训停商业活新疆记者拍到中国首张高清雪豹捕食照片两男子从逾千米高全球最高建筑定点跳伞通用在华投120亿美元扩张湖北原副省长郭有明被立案侦查甘肃酒泉市气象台建议:学校幼儿园推迟“黑”风呼啸瞬间“吞没”甘肃酒嘉村庄不在车场停车 村里锁车放气互联网险企推亿元安全支付计划油轮在马六甲海峡遇袭网上资源共享 入学申请不再“跑断腿”5万余件非法出版物盗版光碟被销毁首批推出80个项目 面向社会公开招菲律宾对受害者及家属致歉粤2014年高考英语 听说考试成绩广东检察机关1集体3个人获奖10万集体户结婚难 广州中介“搭户第11代卡罗拉空间无敌那些帮你养花的小伙伴们中方坚定致力于实现半岛无核化SUV小而弥坚色色:色生万象 创新永葆青春色调OLED正式命名为“有机电视”
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘