|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
|
Есть ли альтернатива функции DrawFocusRect?23.08.2018, 00:01. Показов 3348. Ответов 10
Метки нет (Все метки)
API-функция DrawFocusRect выделяет прямоугольник серой пунктирной линией толщиной в 1 пиксель. Хотелось бы чуть подчеркнуть выделение, например не пунктиром, а сплошной линией, не серой, а чёрной. Существуют ли в C++Builder подобные функции?
0
|
|
| 23.08.2018, 00:01 | |
|
Ответы с готовыми решениями:
10
Есть ли альтернатива функции strtok
GETS: есть ли альтернатива? |
|
Супер-модератор
|
|
| 23.08.2018, 00:38 | |
|
Существуют, начиная с WinXP (в WinAPI, а не в Билдере), но они тебе не понравятся. Придется менять SPI_SETFOCUSBORDERWIDTH / SPI_SETFOCUSBORDERHEIGHT через SystemParametersInfo, а они меняются не только для твоего приложения, а для всех приложений в системе.
Так что выбирай, либо все будут с такими "подчеркнутыми" обрисовками, либо извращайся и рисуй поверх системного прямоугольника свой
1
|
|
|
|
|||||||||||||||||
| 23.08.2018, 00:55 | |||||||||||||||||
Сообщение было отмечено jkrnd как решение
Решение![]() Добавлено через 10 минут Например, можно так: Обработчик MouseDown
Но если нужно сделать штриховую и толщиной более 1 пиксела, тогда нужно последовательно выводить несколько прямоугольников
2
|
|||||||||||||||||
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
||
| 23.08.2018, 05:28 [ТС] | ||
Каков смысл в использовании DrawFocusRect, если я рисую (выделяю мышкой) прямоугольник самостоятельно как предложил TrollHammer, ведь отпуская мышку я имею всю информацию о выделенном прямоугольнике. Зачем же мне рисовать поверх системного прямоугольника?
0
|
||
|
Супер-модератор
|
||
| 23.08.2018, 11:45 | ||
|
Или ты сам DrawFocusRect вызываешь, и хочешь, чтобы оно по-другому выглядело? Не по теме: P.S. Когда уже научатся задавать вопросы так, чтобы не было разночтений? То ли надо сделать так, чтобы системная рамка для твоего приложения во всех контролах была более заметна, то ли за каким-то фигом сам вызываешь DrawFocusRect, и надо, чтобы оно было выделено лучше, чем это делает система по-умолчанию. Как хочешь - так и понимай, называется... А ответов при этом хотят точных и четких...
1
|
||
| 23.08.2018, 13:15 | |
|
Не по теме: volvo, это не "Не по теме", а нужно прибить на входе в форум!!
0
|
|
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
|
| 23.08.2018, 14:26 [ТС] | |
|
volvo, nick42, TrollHammer, не хотел вас обидеть. Не понял, что не так спросил. Честно, не догоняю
. Вот мой проект (начал тупо переделывать с другого языка программирования то, что уже довольно давно и исправно работает). Ещё раз извините. Молодой, исправлюсь.
0
|
|
| 23.08.2018, 14:32 [ТС] | |
|
Не по теме: я спросил, потому, что альтернатива функции DrawFocusRect в MSNet есть, но работает коряво и "моргает". Пришлось обращаться к API
0
|
|
|
Супер-модератор
|
|
| 23.08.2018, 14:39 | |
|
А я спросил, что тебе нужно? Зачем вообще привязываться к DrawFocusRect, если ты отметил лучшим ответом решение, когда обрабатываются события клика/перемещения/отпускания мыши? Ну вот при чем тут системная отрисовка focus rect-а? А если я Tab-ом переведу фокус на другую кнопку, что будет? Вот если бы тебе понадобилось выделить активную кнопку (причем всегда, когда меняется активная кнопка - это выделение тоже перемещалось бы туда, где обычно рисуется рамка фокуса) более, чем малозаметной штриховой линией - тогда понятно, надо было бы связываться с системными функциями. А пока - непонятно, при чем тут вообще оно.
Проект даже открывать не буду. Во-первых - терпеть не могу переводы с одного языка на другой, а во-вторых, пока так и нет объяснения, ЧТО ЖЕ НУЖНО в конце концов выделять - он вообще бесполезен.
1
|
|
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
|
| 23.08.2018, 15:08 [ТС] | |
|
volvo, я cвою ошибку понял. В дальнейшем постараюсь не тупить.
Не по теме: Переделываю графики теплотехнических параметров со сплошного API+VB6 на С++Builder+TChart. Одна из опций старой программы позволяла выделить (выбрать) мышкой кусок захваченного экрана и сохранить захваченную картинку в одном из сжатых форматов (png, gif, jpg). Видимо тогда я не думал, что рисовать "резиновый" прямоугольник, каждый раз стирая предыдущий можно и самому.
0
|
|
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
|||||||||||
| 25.08.2018, 11:33 [ТС] | |||||||||||
|
TrollHammer, Если на форму добавить объект TImage, выставив его свойства:
Align = alClient, AutoSize = False, Stretch = False, затем вставить в него картинку копии текущего экрана следующим способом:
Я понимаю, что в процедуре OnMouseMove объекта Image1 стирается старый прямоугольник и рисуется новый. Почему моргает картинка и как этого можно избежать? Не по теме: Мне нужно выделить мышкой кусок текущего экрана и поместить его в bmp для последующего сохранения в графическом файле. Может я на ложном пути? Добавлено через 1 час 33 минуты вышел из положения так:
0
|
|||||||||||
| 25.08.2018, 11:33 | |
|
Помогаю со студенческими работами здесь
11
Есть ли альтернатива Compiz? Есть ли альтернатива bmp? Альтернатива Nadavi.ru есть? Есть ли альтернатива фреймам Есть ли альтернатива DataGridView Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|