Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.28;
Скачать: CL | DM;

Вниз

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 вся ветка

Текущий архив: 2004.11.28;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.039 c
6-1095341263
netter
2004-09-16 17:27
2004.11.28
Подключение/отключение сетевого адаптера под WinXP или Win2000


8-1093505993
Andrey
2004-08-26 11:39
2004.11.28
распознование формата картинки


1-1100536394
InfMag
2004-11-15 19:33
2004.11.28
Изменение массива не работает


14-1100076018
Григорьев Антон
2004-11-10 11:40
2004.11.28
Так вычисляются роботы :))


1-1100472002
Кто---то
2004-11-15 01:40
2004.11.28
Как вставить элемент внутрь массива рекордов ?