Transparent для Edit`ов...

Тема в разделе "WASM.WIN32", создана пользователем Megavolt0, 2 апр 2007.

  1. Megavolt0

    Megavolt0 New Member

    Публикаций:
    0
    Регистрация:
    21 ноя 2006
    Сообщения:
    7
    Добрый день...
    У меня вопрос по поводу сабжа...

    Среда WinAsm+masm32

    Собственно имеется форма залитая через rect картинкой, на ней 2 эдита...
    хочется сделать прозрачным фон для них.

    конструкция типа:

    .if uMsg==WM_CTLCOLOREDIT
    invoke SetBkMode,wParam,TRANSPARENT
    invoke GetStockObject,HOLLOW_BRUSH
    ret

    делает эдиты прозрачными до момента стирания напечатанного текста... далее он накладывается на ранее напечатанный.

    Наведите на путь истиннный... как мне сделать прозрачность едитов когда под ними не фон с определенным цветом, а картинка...

    З.Ы.
    по форуму искал...но дальше того кода что я привел, никто не заходил...
    заранее спасибо за ответ(ы).
     
  2. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    Поиск в google.ru поможет - на днях видел такой пример, но только, кажется, на васике
     
  3. kero

    kero Модератор SOURCES & 2LZ Команда форума

    Публикаций:
    0
    Регистрация:
    4 апр 2006
    Сообщения:
    1.074
    Адрес:
    Москва
    Megavolt0

    >как мне сделать прозрачность едитов когда под ними не фон с определенным цветом, а картинка...

    Учебные примеры с исходниками (masm32):
    http://rsdn.ru/File/42164/transp_control.zip
    http://rsdn.ru/File/42164/ws_ex_composited.zip

    WS_EX_TRANSPARENT, WS_EX_COMPOSITED, etc. Заодно можно и перетаскивать.
     
  4. Megavolt0

    Megavolt0 New Member

    Публикаций:
    0
    Регистрация:
    21 ноя 2006
    Сообщения:
    7
    kero
    Спасибо, но это все я уже видел... тем более что первый пример имеет глюк с выделением текста... мне бы хотелось без глюков реализовать... тоесть видимо надо каким-то образом отлавливать ONPAINT на эдите..

    пример действительно достаточно глючный..
    но всеже спасибо..
     
  5. Veter

    Veter New Member

    Публикаций:
    0
    Регистрация:
    23 дек 2006
    Сообщения:
    161
    .elseif uMsg==WM_CTLCOLOREDIT
    invoke SetTextColor,wparam,(0......h)
    invoke BkColor,wparam,NULL
    invoke GetStockObject,NULL_BRUSH
    ret
    Приблизительно так. Проблема - нужно еще сделать
    invoke InvalidaterRect ....., причём - найти место, куда его воткнуть ... непонятно почему, непросто оказалось.
    А проще всего - заменить Едиты на РичЕдиты - если для них указать Транспарент - они сами всё и делают. Обновлять надо тоже.
     
  6. Veter

    Veter New Member

    Публикаций:
    0
    Регистрация:
    23 дек 2006
    Сообщения:
    161
    Сори первым нужно поставить
    invoke SetBkMode и указать для него TRANSPARENR
    забыл совсем...
     
  7. Veter

    Veter New Member

    Публикаций:
    0
    Регистрация:
    23 дек 2006
    Сообщения:
    161
    Извините ! :dntknw:( Сплю,не видел,что код есть уже.
    invoke BkColor конечно не нужен. Но SetTextColor позволяет менять цвет текста, иногда может пригодиться.
    После продолжительных экспериментов - отказался от Едита ,тем более - его клинит, если файл больше 30 килобайт. После более внимательного чтения одного из уроков Iczelion`a выяснилось ,что у Едита лимит - 64 килобайта. А почему клинит начиная с 30 килобайт я догадываюсь,но подробно изучать этот вопрос лень что-то. Если есть желание - можно посмотреть,что получилось из РичЕдита,который у меня тоже печатает на битмапе....ссылка есть в теме "Assembler" в разделе для начинающих.
    Пытался сделать редактор типа Букшелс - разворот книжки из двух страниц , там встретились трудности с передачей фокуса с одной страницы на другую.Пока оставил это ... Сейчас пытаюсь решить проблему запоминания страницы,на которой был закрыт файл.Мысли есть,но реализация наталкивается на полное отсутствие информации не на английском языке.
     
  8. Megavolt0

    Megavolt0 New Member

    Публикаций:
    0
    Регистрация:
    21 ноя 2006
    Сообщения:
    7
    Veter
    спасибо, надо действительно попробывать с РичЕдитом...
    но теперь вопрос в другом... как сделать из него бегущую строку...
    и вообще как её сделать... исходников много но до сути докопаться невозможно - слишком много мусора... поэтому если кто-нибудь слышал или знает как проще реализовать оную... напишите пожалуйста или дайте ссылку...
     
  9. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Megavolt0
    Редактируемую бегущую строку???
     
  10. Megavolt0

    Megavolt0 New Member

    Публикаций:
    0
    Регистрация:
    21 ноя 2006
    Сообщения:
    7
    Quantum
    нет... просто текст заранее определенный в переменной.
    движение направленное и постоянное.
    как раз с прозрачностью...
     
  11. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    http://rapidshare.com/files/24156104/wasmtst.rar.html

    Там исходники DLL с реализацией прозрачного контрола с бегущей строкой и пример экзешника с 3мя такими контролами. Весь код на масме. В данной реализации текст перемещается сверху вниз, но в оффлайновой версии форума должны быть модификации этого же кода с горизонтальным перемещением и т.д.
     
  12. Megavolt0

    Megavolt0 New Member

    Публикаций:
    0
    Регистрация:
    21 ноя 2006
    Сообщения:
    7
    Quantum
    Спасибо...обязательно посмотрю...
    жутко плохо и архи неприемлемо что с собой надо таскать дллху...
    как-нибудь без нее бы обойтись...
     
  13. Freecod

    Freecod New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2006
    Сообщения:
    136
    Выдери код из dll, разве есть проблемы?

    Кстати, маленький вопрос, отдельную тему создавать ради такой мелочи...
    В еах к примеру 10h. Нужно преобразовать в Ah (чтобы использовать как 10d). Простейшее вроде там перобразование, не могу вспомнить... Хелп plz.
     
  14. Avoidik

    Avoidik New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2004
    Сообщения:
    288
    Адрес:
    Russia
    A % B + 30h ?
     
  15. OFFSIDE

    OFFSIDE New Member

    Публикаций:
    0
    Регистрация:
    23 сен 2006
    Сообщения:
    106
    Veter
    (Это к посту № 7).
    В эдитбоксе реализована поддержка ундо. Размер ундобуфера в самом контроле равен 30 кБ. Видимо траблы начинаются именно из за этого?
     
  16. GMax

    GMax Member

    Публикаций:
    0
    Регистрация:
    3 июл 2006
    Сообщения:
    218
    Может поможет это.

    Горизонтальная бегущая строка.

    http://rapidshare.com/files/24332029/Scroll_Text.rar.html
     
  17. Megavolt0

    Megavolt0 New Member

    Публикаций:
    0
    Регистрация:
    21 ноя 2006
    Сообщения:
    7
    GMax
    Спасибо, обязательно посмотрю...вот только рапида в нашей сети закрыта( ну ничего...

    скачал... класно, то что нужно..

    ан-нет....а где инклюд и либ с самой функцией??
     
  18. GMax

    GMax Member

    Публикаций:
    0
    Регистрация:
    3 июл 2006
    Сообщения:
    218
    Поиск рулит

    http://www.rewolf.prv.pl/

    Смотреть -- Scroller lib v1.01

    P.S. там еще интересное есть
     
  19. Megavolt0

    Megavolt0 New Member

    Публикаций:
    0
    Регистрация:
    21 ноя 2006
    Сообщения:
    7
    GMax
    Нашел... спасибо... буду разбираться..