国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

使用API在VB中創建狀態欄

2019-11-18 17:54:19
字體:
來源:轉載
供稿:網友

VB中你想創建一個簡單的狀態欄也用上那個幾MB的OCX嗎?有沒有方法可以不用呢,下面就是以API來創建
一個狀態欄,VB讓初學朋友學得很方便,但對你對VB有所了解的時候,卻發現VB原來就是雞肋......

先創建一個窗體,在窗體里添加兩個Button,然后寫下以下代碼:

'-----------------------------------------------
'
'CreateStatusBarDemo
'
'codebyloveboom[DFCG][FCG][US]
'email:loveboom#163.com
'DimhWndBarAsLong;狀態欄句柄
PrivateConstWS_VISIBLEAsLong=&H10000000
PrivateConstWM_USERAsLong=&H400
PrivateConstSB_SETPARTSAsLong=(WM_USER 4)'這兩個常數在VB自帶的api查詢器里沒有,需要手工添加
PrivateConstSB_SETTEXTAAsLong=(WM_USER 1)
PrivateDeclareFunctionCreateStatusWindowLib"comctl32.dll"(ByValstyleAsLong,ByVallpszTextAsString,ByValhwndParentAsLong,ByValwIDAsLong)AsLong
PrivateDeclareFunctionSendMessageLib"user32.dll"Alias"SendMessageA"(ByValhwndAsLong,ByValwMsgAsLong,ByValwParamAsLong,ByReflParamAsAny)AsLong
PrivateDeclareFunctionMoveWindowLib"user32.dll"(ByValhwndAsLong,ByValxAsLong,ByValyAsLong,ByValnWidthAsLong,ByValnHeightAsLong,ByValbRepaintAsLong)AsLong

'--------------------------------------------------
'
'創建狀態欄
'函數說明:
'ParenthWnd  狀態欄所屬的句柄
'IDC_STATBAR狀態欄的ID號,用于對狀態欄的單擊之類的操作
'hBarWin函數返回狀態欄的句柄
'szText要顯示的信息
'
'---------------------------------------------------
FunctionCreateStatBar(ParenthWndAsLong,IDC_STATBARAsLong,hBarWinAsLong,OptionalszTextAsString="Demo")AsBoolean
DimretAsLong'返回值
Dimbar(0To1)AsLong'分欄的各項位置
DimszbarAsLong'分欄的數目

'-------------------------------------------------------
'定義數組
bar(0)=235'第一欄寬度為245
bar(1)=-1'-1表示后面的分為一欄

'-------------------------------------------------------

ret=CreateStatusWindow(WS_CHILDOrWS_VISIBLE,ByValszText,ParenthWnd,IDC_STATBAR)'創建狀態欄
szbar=2
Ifret=0Then'如果創建失敗則退出過程
CreateStatBar=False
ExitFunction
EndIf
hBarWin=ret'返回狀態欄的句柄
Ifszbar>1Then'因為默認就是分一欄所以,這里判斷為大于1就是分欄
SendMessagehBarWin,SB_SETPARTS,szbar,bar(0)'分欄
EndIf
CreateStatBar=True'創建成功返回真值
EndFunction

'----------------------------
'移動狀態欄
'----------------------------
SubMoveStatWindow(hBarAsLong)
IfhBarThen'如果狀態欄句柄不為0則移動
CallMoveWindow(hBar,0,0,0,0,True)
EndIf
EndSub

'------------------------------
'在指定欄上顯示信息
'hBar為狀態欄的句柄
'szbar指定要在哪一欄顯示信息,從0開始計,也就是說,如果分兩欄,我們要在第二欄里顯示信息,szbar就設置為1
'szText要顯示的信息
'-------------------------------
SubSetBarText(hBarAsLong,szbarAsLong,strTextAsString)
SendMessagehBar,SB_SETTEXTA,szbar,ByValstrText
EndSub

這樣狀態欄就基本可行了,當然,你還可以用SetWindowLong來處理狀態欄信息.
程序在Win2003vb6sp6下測試通過

->


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 德庆县| 侯马市| 富锦市| 兴安盟| 房产| 玛纳斯县| 黄骅市| 和顺县| 鄯善县| 东海县| 永兴县| 延寿县| 天镇县| 青河县| 阳新县| 兖州市| 南宁市| 汝南县| 津市市| 丰宁| 合山市| 盖州市| 水富县| 临沂市| 大英县| 周宁县| 陆川县| 辛集市| 东丽区| 道真| 奉贤区| 阜新市| 元谋县| 铜梁县| 清水河县| 普定县| 锡林浩特市| 耿马| 仲巴县| 湟中县| 湟中县|