Аннотация:
Класс SButton позволит вам снабдить программу кнопками, содержащими и картинки, и текст. Вы сможете установить для кнопки целый ряд различных стилей. Кроме того, класс SButton может самостоятельно построить по заданному цветному изображению чёрно-белое, которое будет использоваться, когда кнопка не в фокусе.
Класс написан с использованием библиотеки MFC и может использоваться только в MFC-проектах.
Две потенциальные проблемы, которые не решены
От:
Аноним
Дата:
27.11.01 04:50
Оценка:
1. При быстром нажатии кнопки заметно запаздывание отрисовки состояний нажато/отпущено. Все это из-за того, что кнопке типа PushButton не нужно обрабатывать WM_LMOUSEDBLCLICK. Все, что нужно сделать добавить в обработчик OnLMouseDblClick отправку еще одного сообщения WM_LBUTTONDOWN или вызов метода OnLButtonDown.
2. Даю 100% процентов, что DEFAULT статус кнопки тоже не отрабатывается. Вот тут я, к сожалению, ничем помочь не могу. Возможен вариант, что необходимо руками изменять стили кнопок BS_OWNERDRAW и BS_DEFPUSHBUTTON, в зависимости от состояния кнопки.
1.
Никакого запаздывания отрисовки нет
(если только на процессоре i8086).
А если она и была, то это ни как не повлияло бы
на поведение кнопки.
Эта так называемая "проблема", присуща всем стандартным кнопкам.
Но если Вас это не устраивает, то можно добавить
обработчик сообщения WM_LBUTTONDBLCLK:
2.
Да состояние ODS_DEFAULT не обраватывается.
Кому оно вообще нужно???
Это жирное выделение(heavy black border) лично меня
всегда раздражало.
А предложение: > Возможен вариант, что необходимо руками изменять > стили кнопок BS_OWNERDRAW и BS_DEFPUSHBUTTON, > в зависимости от состояния кнопки.
Я вообще не понял, это ты про что???
>Все, что нужно сделать добавить в обработчик OnLMouseDblClick отправку еще одного сообщения WM_LBUTTONDOWN или вызов метода OnLButtonDown
КРУТА !!!
Мне помогло :)