Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Прозрачный фон в RichTextBox Добавлено: 29.07.06 19:21  

Автор вопроса:  ZoomerSD | ICQ: 148640473 
Доброе время суток!
на форуме нашол пример http://www.vbnet.ru/forum/show.aspx?id=58522
который позволяет делать фон стандартного текстового поля прозрачным. Кто нибудь знает как можно провернуть такое-же с RichTextBox?
Заранее спасибо.

Ответить

  Ответы Всего ответов: 9  

Номер ответа: 1
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #1 Добавлено: 29.07.06 21:27
по этому же принципу - сабклассинг...

Ответить

Номер ответа: 2
Автор ответа:
 ZoomerSD



ICQ: 148640473 

Вопросов: 135
Ответов: 270
 Профиль | | #2 Добавлено: 29.07.06 21:35
по этому же принципу - сабклассинг...

А по подробнее можно?

Ответить

Номер ответа: 3
Автор ответа:
 Mihalыch



ICQ: 373-509-101 

Вопросов: 56
Ответов: 330
 Профиль | | #3 Добавлено: 30.07.06 07:12
Можно так:
    Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
    Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
    Const GWL_EXSTYLE = (-20)
    Const WS_EX_LAYERED = &H80000
    Const LWA_ALPHA = &H2
    Const LWA_COLORKEY = &H1
    Dim Ret As Long

Private Sub Form_Load()
    Ret = GetWindowLong(Me.hWnd, GWL_EXSTYLE)
    Ret = Ret Or WS_EX_LAYERED
    SetWindowLong Me.hWnd, GWL_EXSTYLE, Ret
    SetLayeredWindowAttributes Me.hWnd, &HFFFFFF, 255, LWA_COLORKEY Or LWA_ALPHA
End Sub


Т.е. все что белого цвета будет прозрачным, параметр bAlpha, коэффициент прозрачности (255 - полностью прозрачный, 0 - не прозрачный)

Ответить

Номер ответа: 4
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #4 Добавлено: 30.07.06 14:31
2 Mihalыch: эт не то, потому что надо, чтобы было видно, не то, что под формой, а то, что под RichTextBox'ом... Как я понимаю, автор вопроса хочет сделать фон-картинку в контроле... Если ошибаюсь, прошу прощения...

Ответить

Номер ответа: 5
Автор ответа:
 ZoomerSD



ICQ: 148640473 

Вопросов: 135
Ответов: 270
 Профиль | | #5 Добавлено: 30.07.06 19:10
да. именно так. Правда есть одно НО. код должен работать как под ХР так и под 98-м а оба приведённых кода к сожалению работают только под ХР.

Ответить

Номер ответа: 6
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #6 Добавлено: 30.07.06 19:50
Хм, а разве пример по твоему линку работает только в XP?

Ответить

Номер ответа: 7
Автор ответа:
 ZoomerSD



ICQ: 148640473 

Вопросов: 135
Ответов: 270
 Профиль | | #7 Добавлено: 30.07.06 20:12
Как не странно, но похоже что да. Там вылетает бесконечный цикл и в итоге ошибка. которая вырубает всё. что за ошибка и где у меня отследить не получилось. делаю дебаг всё вроде бы в порядке (правда не проверял что функции возвращают) а ток вылезаю из дебага сразу ошибка.

Ответить

Номер ответа: 8
Автор ответа:
 Серёга



ICQ: 262809473 

Вопросов: 17
Ответов: 561
 Web-сайт: houselab.narod.ru
 Профиль | | #8
Добавлено: 30.07.06 20:20
Хм, а разве пример по твоему линку работает только в XP?

Все API из примера поддерживались ещё в Win95. Так что под 98/Me всяко должно работать :)

Ответить

Номер ответа: 9
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #9 Добавлено: 01.08.06 11:26
Прозрачность в Win95/98/Me не поддерживалась изначально. А по сабжу - только сабклассинг. Есть пример для TextBox'а, под RTB можно переделать, но советую найти решение получше - ибо кривизна и мерцание будут твоими спутниками по жизни :)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам