Плоская кнопка

Тема в разделе "WASM.BEGINNERS", создана пользователем 2FED, 2 сен 2008.

  1. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    Как создать такую кнопку, как в Total Comande-re

    [​IMG]

    какой стиль и класс использовать в CreateWindowEx ?
     
  2. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.914
  3. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.914
    2FED по-моему, то, что нужно в аттаче
     
  4. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    стили через mrhx-овский VISG хорошо подбирать.
     
  5. KondraT

    KondraT Member

    Публикаций:
    0
    Регистрация:
    22 янв 2006
    Сообщения:
    175
    BS_FLAT ?

    [​IMG]
     
  6. DEEP

    DEEP Андрей

    Публикаций:
    0
    Регистрация:
    27 апр 2008
    Сообщения:
    491
    Адрес:
    г. Владимир
    2FED
    Думаю, тут без BS_OWNERDRAW не обойтись. Вот, если что, кодес для перерисовки. Правда, создавался он не для этих целей, однако я уверен что вы найдёте, где именно там надо поработать напильником. Там надо всего лишь заменить "поднятую" рамку на отсутствие таковой, и плюс ловить обработку наведения мыши (в структуре DRAWITEMSTRUCT вроде как есть такой парам. Если нет - ловим WM_MOUSEHOVER и WM_MOUSELEAVE - вроде так они называются).
     
  7. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    Mikl___ там где куча кнопок они все через картинку создаются, а второй архив воабще непонятно - там совершенно обычные кнопки

    KondraT вродебы с стилем XP такие штуки не катят.

    _basmp_ можно поподробней?

    DEEP Ух =)
     
  8. Com[e]r

    Com[e]r Com[e]r

    Публикаций:
    0
    Регистрация:
    20 апр 2007
    Сообщения:
    2.624
    Адрес:
    ого..
    да чё, тут же бс_флат, 24манифест в ресурсы и привет космонафтика!
     
  9. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    Comer_
    Код (Text):
    1. invoke  CreateWindowEx,0,addr cbut,addr sComplete,WS_CHILD or WS_VISIBLE or \
    2.                 WS_TABSTOP or BS_FLAT,175,444,65,20,hWnd,506,hInstance,0
    с "24" в ресурсах, и ничего не изменилась, какая была такая и осталась.
     
  10. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.914
    Не такие они и "обычные" в ресурсах стоит BS_FLAT и WS_EX_DLGMODALFRAME
    Скормите IDA Total Comander и не мучайтесь -- все будет видно ;)
    Пятью минутами позже -- Натравил "Resource Hacker" на "Total Comander" -- "This file has a non-standard resource layout... it has probably been compressed with an "EXE compressor" :dntknw:
     
  11. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    2FED
    http://wasm.ru/forum/viewtopic.php?id=19989
    http://mrhx.clan.su/
     
  12. G13

    G13 New Member

    Публикаций:
    0
    Регистрация:
    24 мар 2006
    Сообщения:
    499
    Mikl___
    Как дети, чесслово. "upx.exe -d" спасёт отца русской демократии, но что вы там ловить собрались? tcmd на дельфе писан. Будете дизасмить дельфёвые контролы?


    Comer_
    То, что получается с бс_флатом наглядно продемонстрировал тов. KondraT. Бордюр вокруг кнопки всё равно будет, хоть расшибись.


    Топикстартеру надобно глядеть либо в сторону кнопки с BS_OWNERDRAW, либо в сторону тулбара с TBSTYLE_FLAT. Последнее, imho, проще, но расточительно - ради одной кнопки-то.
     
  13. Com[e]r

    Com[e]r Com[e]r

    Публикаций:
    0
    Регистрация:
    20 апр 2007
    Сообщения:
    2.624
    Адрес:
    ого..
    да о чём вы мне говорите? с 24 и диалогом, просто написанными ресхаком, я получал прекрасную вот такую фигню кнопочную. правда, там было залипание кнопки.. типа вместо чекбокса, если только в этом дело..
    хотя я протев. вечером вот специально найду тот проект и докажу что бористынеправ >.(
     
  14. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.914
    в аттаче тулбар с TBSTYLE_FLAT, но мне кажется, что 2FED нужно не это :dntknw:
     
  15. kero

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

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

    G13 New Member

    Публикаций:
    0
    Регистрация:
    24 мар 2006
    Сообщения:
    499
    Comer_
    ??? .rc в студию! Хотя, наверное имеется в виду нечто вроде этого:

    [​IMG]
    Фигня прекрасная, кнопочная, с залипанием. Получается из BS_3STATE (или BS_AUTO3STATE) + BS_PUSHLIKE. Если добавить BS_FLAT, она даже будет плоской. Но это явно не похоже на тулбар Total Commander.
     
  17. dgs

    dgs New Member

    Публикаций:
    0
    Регистрация:
    23 июн 2008
    Сообщения:
    434
    XXControls в исходниках WASMA ищите и наслаждайтесь...
     
  18. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
  19. Com[e]r

    Com[e]r Com[e]r

    Публикаций:
    0
    Регистрация:
    20 апр 2007
    Сообщения:
    2.624
    Адрес:
    ого..
    ну вот у меня с кодом
    CONTROL "ПЫЩЬ!", 123, BUTTON, BS_AUTOCHECKBOX | BS_LEFTTEXT | BS_PUSHLIKE | BS_FLAT | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 10, 10, 50, 10
    абсолютно та же фигня, что и в коммандере.
    а ваш вариант напоминает мне о далёких годах делфикодинга с VCL, там есть компонент типа bitblt или flatbtn, непомню точно, но оно есть.
    в принципе если тебе так прям пц надо этот фифект, можешь написать класс(омг), в основе коорого будет STATIC, у которого ты будешь менять EXSTYLE по hover'у, клику, делая ему бордер тудасюда и всё такое..

    попробуйте сказать что я несу розовую чушь.

    зы: и да, название топика грустное какое то, я его дважды прочитал как "плоская попка" .(