回 帖 发 新 帖 刷新版面

主题:[讨论]userControl的AutoRedraw设置为True后GetDC的问题

在userControl里
Public Property Get hWnd() As Long
    hWnd = UserControl.hWnd
End Property
Public Property Get hDC() As Long
    hDC = UserControl.hDC
End Property
Private Sub UserControl_Initialize()
    '当autoredraw=true时,可以看到线条;为false时不能看见
    UserControl.Line (0, 0)-(UserControl.Width, UserControl.Height)
End Sub
在普通工程的form里,添加usercontrol1,名为ctl1
Debug.Print ctl1.hwnd, ctl1.hDC
Debug.Print "getDC="; GetDC(ctl1.hwnd)
当把userControl的AutoRedraw设置为True后,使用GetDC(ctl1.hWnd)获得的值与ctl1.hDC的值不一致。此时是该使用getDC的值还是ctl.hDC的值?
(AutoRedraw设置为False时,getDC()与ctl1.hDC值一致)

回复列表 (共2个回复)

沙发

用GetDC,因为场景变了,不能用原来的hDC.

板凳

因为没有直接在usrcontrol上绘图,没必要把usrControl的AutoRedraw设置为true。还是设置为False后直接用属性hDC方便

我来回复

您尚未登录,请登录后再回复。点此登录或注册