Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.02 c
4-1098254290
AlexTayfun
2004-10-20 10:38
2004.11.28
Изменить цвет чужого окна.


3-1098867282
Митяй
2004-10-27 12:54
2004.11.28
Refresh


3-1098919357
Wital
2004-10-28 03:22
2004.11.28
Change ADO Langdriver Paradox


1-1099647626
TankMan
2004-11-05 12:40
2004.11.28
Ни кто не видал ListBox(или аналог), в котором реалезована


1-1100254631
Sergeich
2004-11-12 13:17
2004.11.28
TStringList.DelimitedText




   Наверх