На форме создаю тесктэдит:
- Код: Выделить всё
hwndTx = CreateWindowExW(WS_EX_TRANSPARENT _
, StrPtr("Edit"), StrPtr("ля-ля-ля") _
, WS_BORDER Or WS_CHILD Or WS_VISIBLE Or &H4& _
, 0, 0, 150, 150, Me.hwnd, 0, App.hInstance, 0)
Сублкассирую и эдит, и форму.
В винпрок это:
- Код: Выделить всё
Public Function winProc(ByVal hwnd As Long, uMsg As Long, wParam As Long, lParam As Long, ByVal PrevProc As Long) As Long
Dim aRect As RECT
Select Case uMsg
Case WM_CTLCOLOREDIT
winProc = CallWindowProc(PrevProc, hwnd, uMsg, wParam, lParam)
If hwnd = hwndF Then
SetBkMode wParam, 1
End If
' Case WM_PAINT
Case WM_ERASEBKGND
If hwnd = hwndTx Then
' winProc = CallWindowProc(PrevProc, hwnd, uMsg, wParam, lParam)
Else
winProc = CallWindowProc(PrevProc, hwnd, uMsg, wParam, lParam)
End If
Case Else
winProc = CallWindowProc(PrevProc, hwnd, uMsg, wParam, lParam)
End Select
End Function
Эдит отлично работает - можно печатать, можно выделять текст. Но - не затирает то, что уже не действительно. Стираешь тест - картинка от него остаётся. Если утащить окно за край экрана, а потом вернуть - эдит приобретает должный вид. Как побороть?