Transparent для Edit`ов...

Discussion in 'WASM.WIN32' started by Megavolt0, Apr 2, 2007.

  1. Megavolt0

    Megavolt0 New Member

    Blog Posts:
    0
    Joined:
    Nov 21, 2006
    Messages:
    7
    Добрый день...
    У меня вопрос по поводу сабжа...

    Среда WinAsm+masm32

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

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

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

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

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

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

    RamMerLabs Well-Known Member

    Blog Posts:
    0
    Joined:
    Sep 11, 2006
    Messages:
    1,426
    Поиск в google.ru поможет - на днях видел такой пример, но только, кажется, на васике
     
  3. kero

    kero Модератор SOURCES & 2LZ Staff Member

    Blog Posts:
    0
    Joined:
    Apr 4, 2006
    Messages:
    1,074
    Location:
    Москва
    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

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

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

    Veter New Member

    Blog Posts:
    0
    Joined:
    Dec 23, 2006
    Messages:
    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

    Blog Posts:
    0
    Joined:
    Dec 23, 2006
    Messages:
    161
    Сори первым нужно поставить
    invoke SetBkMode и указать для него TRANSPARENR
    забыл совсем...
     
  7. Veter

    Veter New Member

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

    Megavolt0 New Member

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

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

    Blog Posts:
    0
    Joined:
    Jan 6, 2003
    Messages:
    3,143
    Location:
    Ukraine
    Megavolt0
    Редактируемую бегущую строку???
     
  10. Megavolt0

    Megavolt0 New Member

    Blog Posts:
    0
    Joined:
    Nov 21, 2006
    Messages:
    7
    Quantum
    нет... просто текст заранее определенный в переменной.
    движение направленное и постоянное.
    как раз с прозрачностью...
     
  11. Quantum

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

    Blog Posts:
    0
    Joined:
    Jan 6, 2003
    Messages:
    3,143
    Location:
    Ukraine
    http://rapidshare.com/files/24156104/wasmtst.rar.html

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

    Megavolt0 New Member

    Blog Posts:
    0
    Joined:
    Nov 21, 2006
    Messages:
    7
    Quantum
    Спасибо...обязательно посмотрю...
    жутко плохо и архи неприемлемо что с собой надо таскать дллху...
    как-нибудь без нее бы обойтись...
     
  13. Freecod

    Freecod New Member

    Blog Posts:
    0
    Joined:
    Feb 25, 2006
    Messages:
    136
    Выдери код из dll, разве есть проблемы?

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

    Avoidik New Member

    Blog Posts:
    0
    Joined:
    Dec 29, 2004
    Messages:
    288
    Location:
    Russia
    A % B + 30h ?
     
  15. OFFSIDE

    OFFSIDE New Member

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

    GMax Member

    Blog Posts:
    0
    Joined:
    Jul 3, 2006
    Messages:
    218
    Может поможет это.

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

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

    Megavolt0 New Member

    Blog Posts:
    0
    Joined:
    Nov 21, 2006
    Messages:
    7
    GMax
    Спасибо, обязательно посмотрю...вот только рапида в нашей сети закрыта( ну ничего...

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

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

    GMax Member

    Blog Posts:
    0
    Joined:
    Jul 3, 2006
    Messages:
    218
    Поиск рулит

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

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

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

    Megavolt0 New Member

    Blog Posts:
    0
    Joined:
    Nov 21, 2006
    Messages:
    7
    GMax
    Нашел... спасибо... буду разбираться..