Прямо сейчас я рисую маленькое изображение 16x16 в строке заголовка моего окна. Работает хорошо, за исключением неприятного мерцания, от которого я не могу понять, как избавиться.
Я просто рисую изображение следующим образом:
Protected Overrides Sub WndProc(ByRef m As Message)
If m.Msg = WM_SIZE Then
wnd_size = New Size(New Point(CInt(m.LParam)))
End If
If m.Msg = WM_ACTIVATE _
OrElse m.Msg = WM_SIZE _
OrElse m.Msg = WM_SYNCPAINT _
OrElse m.Msg = WM_NCACTIVATE _
OrElse m.Msg = WM_NCCREATE _
OrElse m.Msg = WM_NCPAINT _
OrElse m.Msg = WM_NCACTIVATE _
OrElse m.Msg = WM_NCHITTEST _
OrElse m.Msg = WM_PAINT _
OrElse m.Msg = WM_MOUSEMOVE Then
Dim g As Graphics = Graphics.FromHdc(CType(GetWindowDC(CInt(Handle)), IntPtr))
g.DrawImage(My.Resources.drag, 0, 0, 16, 16)
End If
MyBase.WndProc(m)
End Sub
Он перерисовывает всю строку заголовка каждый раз, когда на ней что-то изменяется (щелчок, наведение курсора на угловые кнопки и т. д.), и во время перерисовки я получаю мерцание.
Кто-нибудь еще сталкивался с этой проблемой?