Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Visual Basic: Общие вопросы > помогите доделать прозрачный текстбокс


Автор: Артур 03.04.19, 13:31
Весь мозг уже сломал - не могу сообразить, чего добавить

На форме создаю тесктэдит:

<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    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)


Сублкассирую и эдит, и форму.
В винпрок это:

<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    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


Эдит отлично работает - можно печатать, можно выделять текст. Но - не затирает то, что уже не действительно. Стираешь текст - картинка от него остаётся. Если утащить окно за край экрана, а потом вернуть - эдит приобретает должный вид. Как побороть?

TransparentTextBox.zip (, : 100)

Автор: Артур 04.04.19, 17:48
Блин, дажевю
Прозрачный текстбокс. Помогите пожалуйста доделать :)

Десять лет как с куста

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)