Можно ли перекрасить кнопку из серого ( default ) другой цвет в VC++/Win32 ?

Тема в разделе "WASM.WIN32", создана пользователем Sokol_2, 7 мар 2005.

  1. Sokol_2

    Sokol_2 New Member

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    23
    Адрес:
    South Africa
    Как перекрасить Edit Box и другие "штучки", известно: надо обработчик WM_CTLCOLOR добавить и кое-что туда дописать. Но вот с кнопками такое не проходит. Или единственное решение - это bitmap на неё наложить ?



    Заранее благодарен
     
  2. AsmGuru62

    AsmGuru62 Member

    Публикаций:
    0
    Регистрация:
    12 сен 2002
    Сообщения:
    689
    Адрес:
    Toronto
    Надо кнопки в ресурсе объявлять со стилем BS_OWNERDRAW. Потом делаем базовый класс от которого заимствуются все диалоговые окна. В диалоговой процедуре класса отвечаем на сообщение WM_DRAWITEM и рисуем кнопку во всех состояниях (disabled, нажатом, отжатом).
     
  3. Sokol_2

    Sokol_2 New Member

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    23
    Адрес:
    South Africa
    2 AsmGuru62



    Спасибо за идею. Надо будет попробовать.



    Удачи
     
  4. Sokol_2

    Sokol_2 New Member

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    23
    Адрес:
    South Africa
    2 AsmGuru62



    Слушай, я проделал всё выше сказанное, ну вот так и не понял, что нужно добавить в обработчик WM_DRAWITEM, чтобы перекрасить уже готовую кнопку из ресурсов в другой цвет. Кусок кода кинуть не можешь ? Был бы очень признателен.
     
  5. Quantum

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

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

    В WM_DRAWITEM нужно собственноручно рисовать всю кнопку. Рисовать фон, на нём - 3х-мерные грани в соответствии со статусом кнопки и текст.
     
  6. Sokol_2

    Sokol_2 New Member

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    23
    Адрес:
    South Africa
    2 Quantum



    Т.е. VC++ IDE ресурсами тут никак не воспользоваться ?

    Тогда что звать надо ? Функции из MFC CButton ?



    Заранее благодарен
     
  7. Quantum

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

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

    Кнопка со стилем BS_OWNERDRAW отличается от любой другой кнопки только тем, что она сама не отрисовывается.





    Функции GDI: FillRect, DrawFrameControl, DrawFocusRect, DrawText, GrayString и т.д.
     
  8. Sokol_2

    Sokol_2 New Member

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    23
    Адрес:
    South Africa
    2 Quantum



    Спасибо, попробую в очередной раз.