GetWindowRect objThis.hWnd, tR
tP.X = tR.Left: tP.Y = tR.Top
ScreenToClient objThis.hWnd, tP
tR.Left = tP.X: tR.Top = tP.Y
tP.X = tR.Right: tP.Y = tR.Bottom
ScreenToClient objThis.hWnd, tP
tR.Right = tP.X: tR.Bottom = tP.Y
End If
InvalidateRect objThis.hWnd, tR, 1
End Sub
為了試試重畫,在窗體上添加一個(gè)ListBox和一個(gè)Command。把ListBox拉得大一些,這樣效果比較明顯。再加入下列代碼:
Private Sub Command1_Click()
RepaintWindow List1
End Sub
Private Sub Form_Load()
Dim i As Long
For i = 1 To 200
List1.AddItem "TestItem " & i
Next i
End Sub
當(dāng)你單擊Command按鈕,ListBox的客戶區(qū)將全部重畫。對(duì)于ListBox,這種效果并不十分明顯地顯示,但這段代碼放在這里主要目的,是讓你在遇上有東西不能恰當(dāng)?shù)刂禺嬎约簳r(shí)可以有辦法解決。
————————————————————————————————
防止窗口重畫 WXJ_Lake 編譯
這則代碼演示了如何防止窗口的一部分重畫。當(dāng)你要往ListBox或ListView這樣的控件里添加許多項(xiàng)時(shí),暫緩重畫可以相當(dāng)?shù)靥岣咛幚硭俣取T谖业南到y(tǒng)上,往一個(gè)ListBox中加10000項(xiàng)比原來提速30%。
新建一個(gè)項(xiàng)目,添加一個(gè)ListBox、一個(gè)Command和一個(gè)CheckBox。把CheckBox的Caption設(shè)為"&Lock Update",Command的Caption設(shè)為"&Load"。然后,把下列代碼粘貼到窗體中:
Private Declare Function LockWindowUpdate Lib "user32" (ByVal hwndLock As Long) As Long
Private Declare Function timeGetTime Lib "winmm.dll" () As Long
Private Sub Command1_Click()
Dim i As Long
相關(guān)推薦:2011年上半年計(jì)算機(jī)等級(jí)考試報(bào)名時(shí)間匯總
2011計(jì)算機(jī)等級(jí)考試二級(jí)VB考點(diǎn)及習(xí)題匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |