Форум: "WinAPI";
Текущий архив: 2004.11.28;
Скачать: [xml.tar.bz2];
ВнизDrawFocusRect на стандартной кнопке. Найти похожие ветки
← →
Comp © (2004-10-13 19:09) [0]Здравствуйте, уважаемые мастера. Подскажите пожалуйста, как сделать, что бы на стандартной (обычной) кнопке
не прорисовывался DrawFocusRect при её выделении (нажатии), а просто рисовалась стандартная голубая (в зависимости от настроек) кромка? В приложении включена поддержка Visual Styles.
Подскажите пожалуйста. Буду очень благодарен.
← →
Игорь Шевченко © (2004-10-13 19:16) [1]Нарисовать еще раз не помогает ?
← →
Comp © (2004-10-13 19:29) [2]Нет.
Еще такой прикол заметил - если нигде не трогать хендл кнопки, т.е. нигде не упомянать - то все рисуется нормально без этого точечного прямоугольника. А стоит только послать WM_SETFONT или еще что-нибудь - то все. Начинает выделяться.
А другие способы есть?
← →
Comp © (2004-10-13 20:34) [3]А еще такой прикол обнаружил:
Вся эта ботва только в режиме Running, т.е. когда в Delphi делаешь Run.
У конечного откомпилированного экзешника такой ерунды нет и все рисуется прекрасно и красиво.
На всякий случай:
параметр dwStyle функции CreateWindow у меня имеет такое сочетание
WS_VISIBLE+WS_CHILD+BS_PUSHLIKE+BS_3STATE
Пробовал убрать один из последних двух - кнопка тут же перестает красиво выделяться при активации, а то вообще стиль меняет (в частности если убрать BS_PUSHLIKE образуется жалкое подобие CheckBox-a, если убрать BS_3STATE - кнопка выделяется только при наведении курсором - желтой кромкой, а активировавшись опять становится белой).
Это результаты моих скромных, тока что проделанных экспериментов.
Я не люблю придираться к мелочам, просто заметил, что у многих диалоговых окон самой Windows на кнопках наблюдается это явление. И мне тоже захотелось добиться такого.
Хоть и мелочь, но все равно так красивее.
Всем спасибо за внимание!
← →
Comp © (2004-10-13 21:05) [4]Вот к чему приводит лень. Трудно было мне на время поменять стиль Windows и выяснить, что к чему.
Голубая кромка - это тоже самое, что в обычном стиле Windows называется "тяжелые границы" (как "Сократ" перевел).
Тех же результатов можно достичь предназначенной для этого константой
BS_DEFPUSHBUTTON в сочетанииWS_VISIBLE+WS_CHILD+BS_DEFPUSHBUTTON
Но только я не пойму, перевода
BS_PUSHBUTTON Создает кнопку, которая посылает сообщение WM_COMMAND в окно владельца когда потребитель выбирается кнопку.
??????????????????????????
Я не использую этот стиль, а сообщение WM_COMMAND для кнопки прекрасно обрабатывается и без этого. Что этим хотят сказать Microsoft-овцы? (В смысле Майкрософтовцы)???
Уважаемые, подскажите пожалуйста.
← →
Игорь Шевченко © (2004-10-14 10:50) [5]
> BS_PUSHBUTTON Создает кнопку, которая посылает сообщение
> WM_COMMAND в окно владельца когда потребитель выбирается
> кнопку.
Если тебе не трудно, то не пости сюда перевод сократа или его аналога. Прояви уважение к людям.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.11.28;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.037 c