Страница: 1 |
Проблемка та еще - нужно сделать TextBox прозрачным, но не сам контрол, а Background, как в Label. Абсолютно ничего не получается. Уже думаю плюнуть. Кто-нибудь еще хочет попробовать?
TextBox навряд-ли получится... а ты не хочешь TextBox заменить на PictureBox? Помнится был пример, там и буковки набивались и каретка была... немножко доделать и все... А фон прозрачный, в PictureBox, так картинку можно с Parent формы снимать будет... Попробуй подключить компонент MS Form 2.0 Object Library. Там в TextBox - можно ставить прозрачность над текстом. Возможно столкнешься с проблемой ввода русского текста. у окон есть такой стиль WS_EX_TRANSPARENT, попробуй, вдруг поможет... ******************************************************************************** [form MSDN] WS_EX_TRANSPARENT Specifies that a window created with this style should not be painted until siblings beneath the window (that were created by the same thread) have been painted. The window appears transparent because the bits of underlying sibling windows have already been painted. ******************************************************************************** Я уже не помню, но вроде читал что прозрачный стиль можно присвоить окну только при его создании (CreateWindowEx). Но ты попробуй поколдовать. Private Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" ( _ ByVal hwnd As Long, _ ByVal nIndex As Long) As Long Private Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" ( _ ByVal hwnd As Long, _ ByVal nIndex As Long, _ ByVal dwNewLong As Long) As Long Private Const GWL_EXSTYLE = -20 Private Const WS_EX_TRANSPARENT = &H20& Private Sub Form_Click() Dim Style As Long Style = GetWindowLong(Text1.hwnd, GWL_EXSTYLE) Style = Style Or WS_EX_TRANSPARENT Call SetWindowLong(Text1.hwnd, GWL_EXSTYLE, Style) End Sub Да все уж перепробовал. И TRANSPARENT через SetBKMode, и при создании окна, да еще уйму всего. Не хочет. А изобретать свой контрол на PictureBox не катит, хотя может и придется. В принципе, через DrawTextEx можно вывод организовать, но вот с поиском и выделением придется подгрузить машину. Если не секрет - зачем это надо? Не секрет - хочу написать контрол, в котором можно нормально сочетать возможности TextBox с картинками. Свой TextBox на основе PictureBox я писать не хочу, поэтому кладу его на PictureBox. Соответственно, фон должен быть прозрачный. Короче сделать это можно... Надо делать так, задаешь стиль текстбокса OWNER_DRAW Сабклассируешь его Отрисовываешь его с помошью GDI+ (не знаю есть ли функция прозрачности в обычном GDI) И все, прозрачный ТекстБокс готов, вот только я никогда этого не делал, но вроде должно получиться... Так ты попробуй, а затем скажешь, что : >Короче сделать это можно... В MSDN есть примерчик как делать TextBox with dithered background, через Setbkmode TRANSPARENT, но единственный эфект от этого - текст начинает не стираться, а смазываться. То, что за контролом, все равно не видно. Надыбал в инете примерчик TextBox с реально прозрачным фоном, но там столько кода, что проще написать новый контрол Я сделаю, но не в ближайшие 3 дня, работы и без этого хватает... Страница: 1 |
Вопрос: Вопрос на засыпку - Transparent TextBox
Добавлено: 02.04.04 14:02
Автор вопроса: LamerOnLine | ICQ: 334781088
Ответы
Всего ответов: 14
Номер ответа: 1
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #1
Добавлено: 02.04.04 20:07
Номер ответа: 2
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #2
Добавлено: 02.04.04 20:31
Полупрозрачными можно сделать только окна уровня формы, дочерние типа текстбокса - не получится. Можно попробовать через AlfaBlend, но это надо будет не печатать текст в пикчербоксе, а рисовать его как битмап и накладывать его hDC на hDC формы с коэффициентом прозрачности.
Номер ответа: 3
Автор ответа:
Destroyed
Вопросов: 0
Ответов: 3
Профиль | | #3
Добавлено: 03.04.04 01:34
Номер ответа: 4
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #4
Добавлено: 03.04.04 02:22
Человеку нужно под текстом а не над ним прозрачность. Да и если над текстом что либо будет (какой-либо hDC) , то сам текст станет недоступен
Номер ответа: 5
Автор ответа:
Chill
ICQ: 554200
Вопросов: 101
Ответов: 343
Профиль | | #5
Добавлено: 03.04.04 03:37
Номер ответа: 6
Автор ответа:
@CyRax PTR
ICQ: 204447456
Вопросов: 28
Ответов: 664
Web-сайт:
Профиль | | #6
Добавлено: 03.04.04 07:00
Номер ответа: 7
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #7
Добавлено: 05.04.04 09:27
Номер ответа: 8
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #8
Добавлено: 05.04.04 09:45
Ещё раз: не делаются дочерние окна прозрачными, только окна первого уровня. Самый старший контейнер. И все что внутри него будет прозрачным, не только текстбокс.
Номер ответа: 9
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #9
Добавлено: 05.04.04 15:28
Номер ответа: 10
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #10
Добавлено: 05.04.04 16:26
Номер ответа: 11
Автор ответа:
Chill
ICQ: 554200
Вопросов: 101
Ответов: 343
Профиль | | #11
Добавлено: 06.04.04 00:31
Номер ответа: 12
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #12
Добавлено: 06.04.04 02:39
Номер ответа: 13
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #13
Добавлено: 06.04.04 09:52
Номер ответа: 14
Автор ответа:
Chill
ICQ: 554200
Вопросов: 101
Ответов: 343
Профиль | | #14
Добавлено: 06.04.04 12:52