Как вывести текст (DrawText) прозрачно?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Как вывести текст (DrawText) прозрачно?

Сообщение Antonariy » 24.06.2008 (Вт) 10:35

1) Рисую табы в табстрипе:
Код: Выделить всё
Private Function ISubclass_Callback(ByVal hwnd As Long, uMsg As Long, wParam As Long, lParam As Long, ByVal PrevProc As Long) As Long
Dim di As DRAWITEMSTRUCT
Dim rc As RECT
Dim IFont As IFont
    If uMsg = &H202B Then 'WM_DRAWITEM
        Call CopyMemory(di, ByVal lParam, Len(di))
        Debug.Print di.itemID, di.itemState
        Set IFont = tsBrwsrs.Font
        Call SelectObject(di.hdc, IFont.hFont)
        rc.Left = di.rcItem.Left + 5
        rc.Right = di.rcItem.Right + 5
        rc.Top = di.rcItem.Top + 5
        rc.Bottom = di.rcItem.Bottom + 5
        'SetBkColor di.hdc, vbWhite
        DrawText di.hdc, tsBrwsrs.Tabs(di.itemID + 1).Caption & Chr(0), -1, rc, 0
    End If
End Function
Текст получается на сером фоне.
Вложения
tabs.gif
(1.13 Кб) Скачиваний: 64
Лучший способ понять что-то самому — объяснить это другому.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 24.06.2008 (Вт) 15:57

SetBkMode для xp-стиля. В обычном режиме нужно заливать фон через FillRect.
Вопрос закрыт.
Лучший способ понять что-то самому — объяснить это другому.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 45

    TopList