powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Command [кнопка]: Важный вопрос
12 сообщений из 12, страница 1 из 1
Command [кнопка]: Важный вопрос
    #34929772
Фотография P.R.O.M.A.R.K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здраствуйте.
В некоторых кнопках для выбора цвета,как например в MSWord,поверх кнопок рисуются цветные прямоугольники.
Я думаю что они выводятся на hDC через WinAPI функции (SetDIBitsToDevice например).
При использовании стиля "Graphical" у кнопки пропадает стиль...

Как правильно реализовать данную задачу?
Если можно то дайте исходник (на любом языке).
Заранее спасибо.
...
Рейтинг: 0 / 0
Command [кнопка]: Важный вопрос
    #34930078
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.R.O.M.A.R.K,
для этого можно применить приём под названием subclassing, и перекрыть процедуру перерисовки окна кнопки. Пример в приложенном файле.

Прим.: не стОит жать кнопку "Стоп" во время отладки.
...
Рейтинг: 0 / 0
Command [кнопка]: Важный вопрос
    #34930433
Фотография P.R.O.M.A.R.K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое спасибо!
Я об этом уже думал,но у меня небольшой опыт в SubClass' инге...
А это реально сделать через SetDIBitsToDevice например ?
...
Рейтинг: 0 / 0
Command [кнопка]: Важный вопрос
    #34930435
Фотография P.R.O.M.A.R.K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БенедиктP.R.O.M.A.R.K,
для этого можно применить приём под названием subclassing, и перекрыть процедуру перерисовки окна кнопки. Пример в приложенном файле.

Прим.: не стОит жать кнопку "Стоп" во время отладки.
Когда я нажимаю на кнопку прямоугольник исчезает, как я это понимаю передается вругое сообщение...
Пожалуйста кинь исправленный исходник, где этот прямоугольник не исчезает при клике
и др.сообщениях...

Заранее спасибо.
...
Рейтинг: 0 / 0
Command [кнопка]: Важный вопрос
    #34930495
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.R.O.M.A.R.KА это реально сделать через SetDIBitsToDevice например ?Можно использовать любые функции GDI. P.R.O.M.A.R.KКогда я нажимаю на кнопку прямоугольник исчезает, как я это понимаю передается вругое сообщение...
Пожалуйста кинь исправленный исходник, где этот прямоугольник не исчезает при клике
и др.сообщениях...У меня перерисовка всегда выполняется правильно, непонятно, что править.
...
Рейтинг: 0 / 0
Command [кнопка]: Важный вопрос
    #34930508
Фотография P.R.O.M.A.R.K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БенедиктУ меня перерисовка всегда выполняется правильно, непонятно, что править.
Тогда зачем ты поставил на форму Command2.
Я нажимаю на Command1,зеленый прямоугольник пропадает...
Я нажимаю на Command2 для того что бы фокус пропал,зеленый прямоугольник появляется...
Какое сообщение обрабатывать, что бы прямоугольник рисовался всегда?
...
Рейтинг: 0 / 0
Command [кнопка]: Важный вопрос
    #34930520
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.R.O.M.A.R.K,
Command2 - просто, чтоб была для сравнения. Версия с манифестом, и задействующая Common Controls в приложенном файле.
...
Рейтинг: 0 / 0
Command [кнопка]: Важный вопрос
    #34930530
Фотография P.R.O.M.A.R.K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БенедиктP.R.O.M.A.R.K,
Command2 - просто, чтоб была для сравнения. Версия с манифестом, и задействующая Common Controls в приложенном файле.
Спасибо,работает.
Но, мог бы ты мне объяснить...
Что такое manifest,как его сделать, почему активировались XP стили и почему прямоугольник не исчезает.
Заранее спасибо.
...
Рейтинг: 0 / 0
Command [кнопка]: Важный вопрос
    #34934724
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.R.O.M.A.R.K,
манифест - это XML-файл, говорящий ОС, что данная программа использует визуальные стили. Он может быть отдельным файлом с именем ИмяИсполняемогоФайла.exe.manifest, либо ресурсом, включённым в исполняемый модуль (см. приложенный файл).

Прямоугольник перестал исчезать потому, что стало приходить "лишнее" сообщение WM_PAINT при подключении стилей. Ты был прав, при смене состояния кнопки приходит другое сообщение, теперь это учитывается. См. приложенный файл.
...
Рейтинг: 0 / 0
Command [кнопка]: Важный вопрос
    #34941499
Фотография P.R.O.M.A.R.K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БенедиктP.R.O.M.A.R.K,
манифест - это XML-файл, говорящий ОС, что данная программа использует визуальные стили. Он может быть отдельным файлом с именем ИмяИсполняемогоФайла.exe.manifest, либо ресурсом, включённым в исполняемый модуль (см. приложенный файл).

Прямоугольник перестал исчезать потому, что стало приходить "лишнее" сообщение WM_PAINT при подключении стилей. Ты был прав, при смене состояния кнопки приходит другое сообщение, теперь это учитывается. См. приложенный файл.
Бенедикт,спасибо за объяснения.
Я раньше,всегда,вставлял в ресурс файл XPSTYLE.res и в расделе инициализации прописывал "InitCommonControls".
Скажи стоит ли использовать manifest в shareware программах?
...
Рейтинг: 0 / 0
Command [кнопка]: Важный вопрос
    #34941502
Фотография P.R.O.M.A.R.K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БенедиктP.R.O.M.A.R.K,
манифест - это XML-файл, говорящий ОС, что данная программа использует визуальные стили. Он может быть отдельным файлом с именем ИмяИсполняемогоФайла.exe.manifest, либо ресурсом, включённым в исполняемый модуль (см. приложенный файл).

Прямоугольник перестал исчезать потому, что стало приходить "лишнее" сообщение WM_PAINT при подключении стилей. Ты был прав, при смене состояния кнопки приходит другое сообщение, теперь это учитывается. См. приложенный файл.
...
Рейтинг: 0 / 0
Command [кнопка]: Важный вопрос
    #34942191
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.R.O.M.A.R.K,
пожалуйста.
А что мешает? MS препятствий не чинит. Описание и текст манифеста есть в MSDN Library - используй на здоровье.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Command [кнопка]: Важный вопрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]