国产探花免费观看_亚洲丰满少妇自慰呻吟_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下測試通過

->


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 涟水县| 湟中县| 栾城县| 政和县| 六盘水市| 乌什县| 达拉特旗| 景宁| 铜川市| 万山特区| 宜昌市| 万荣县| 沙洋县| 德保县| 临高县| 平南县| 德令哈市| 云安县| 分宜县| 普洱| 桃江县| 平邑县| 民乐县| 北川| 灵璧县| 长泰县| 商城县| 东台市| 资中县| 大荔县| 德庆县| 佛坪县| 榆树市| 衡阳县| 攀枝花市| 高雄县| 平南县| 忻城县| 沾化县| 贵德县| 永年县|