Public Const WM_SETREDRAW = &HB Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Declare Function LockWindowUpdate Lib "user32" (ByVal hwndLock As Long) As Long '停止刷新 Call SendMessage(frm.hwnd, WM_SETREDRAW, false, 0&) '开启刷新 Call SendMessage(frm.hwnd, WM_SETREDRAW, true, 0&) '刷新 frm.refresh
Private Sub Form_Load()
Me.AutoRedraw = True '持久输出
End Sub
2、将AutoReDraw设置为TRUE,此时无论代码写在哪,都能将改变立即反映,但是如果程序中设计到调用 Form1.hDC 的时候可能会出问题(比如你有内存图片数据向这个 HDC发送,结果发现发送不上去),这个原因开始我也纳闷过,后来才知道 AutoReDraw设置为TRUE 时获取的 HDC仅是个伪HDC,是获取不到实际的HDC的,详细信息请看我一篇求助:http://topic.csdn.net/u/20090417/00/99c840a0-d0dd-4379-903a-edfa139765e4.html
Public Const WM_SETREDRAW = &HB
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Declare Function LockWindowUpdate Lib "user32" (ByVal hwndLock As Long) As Long
'停止刷新
Call SendMessage(frm.hwnd, WM_SETREDRAW, false, 0&)
'开启刷新
Call SendMessage(frm.hwnd, WM_SETREDRAW, true, 0&)
'刷新
frm.refresh