Вниз
Скачать: 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.022 c
3-1099118308
GURU-RU@bk.ru
2004-10-30 10:38
2004.11.28
Автосохранение БД


14-1100002724
ИМХО
2004-11-09 15:18
2004.11.28
В чем успех FAR-а и Total (Windows) Commander-а?


4-1097823638
AngelFire
2004-10-15 11:00
2004.11.28
Получение IP-адреса машины и имени залогинившегося пользователя


1-1100505613
Relaxxx
2004-11-15 11:00
2004.11.28
В програме много форм, я не хочу их криейтить все сразу!!


1-1100201324
GuAV
2004-11-11 22:28
2004.11.28
{$IFDEF PC_MAPPED_EXCEPTIONS}...{$ENDIF}




   Наверх