Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.039 c
3-1099047904
Lamo
2004-10-29 15:05
2004.11.28
EhLib: DBGrigEh.EditButtons.OnClick - Sender ?


3-1098953421
Tolya
2004-10-28 12:50
2004.11.28
как вывести в dbtext1 поле таблици????


4-1098179804
nastya
2004-10-19 13:56
2004.11.28
узнать тип диска


14-1099847186
Undert
2004-11-07 20:06
2004.11.28
Помогите пожалуйста с SQL запросом


8-1093720769
clampo
2004-08-28 23:19
2004.11.28
Смена картинок по таймеру





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский