30 / 30 / 15
Регистрация: 02.02.2015
Сообщений: 152
1

Окно-рамка для выделения области экрана

29.06.2017, 12:42. Показов 2536. Ответов 2
Метки нет (Все метки)

Всем добрый день. Стоит задача сделать окно-рамку для выделения области экрана. То есть это не должно быть разовое выделение области мышкой, а именно окно (или ещё что), которое можно скрыть/показать, растянуть, переместить.
Я сделал с использованием регионов Windows. Ниже я прикладываю картинки, как это выглядит. Красные области, то есть квадратики, линии, перекрестье рамки - это регионы окна. При изменение размеров окна, я удаляю регионы и создаю их заново.
Вроде бы всё работает, НО!!! В WinXP и в Win7 с выключенным Aero остаются следы, если окно растягивать справа или
снизу. Картинки прикладываю.
Суть вопроса. Создание/удаление регионов, наверно, затратная операция для системы, может есть другой путь/способ реализации моей задачи?
Окно-рамка для выделения области экрана

Окно-рамка для выделения области экрана
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.06.2017, 12:42
Ответы с готовыми решениями:

SysListView32 рамка выделения
В окне есть SysListView32. Как узнать какие строки и столбцы в нем выделены рамкой. На скрине...

Рамка выделения на TImage
Привет! У меня есть компонент TImage. На нем нарисован график. Я хочу выделять часть графика...

Составить программу для выделения D - экстремального подмножества в заданном графе согласно указанному алгоритму его выделения
Задание. Составить программу для выделения D - экстремального подмножества в заданном графе...

Бот для игры, эмуляция мышки, анализ цвета \ текста с области экрана
Здравствуйте, простите за беспокойство, но не могу найти толковых статей \ гайдов по написанию...

2
1130 / 789 / 232
Регистрация: 12.04.2010
Сообщений: 2,012
29.06.2017, 18:11 2
Лучший ответ Сообщение было отмечено wmaster575 как решение

Решение

Пример, WS_EX_LAYERED, SetLayeredWindowAttributes.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
    HWND hwnd = CreateWindowEx( 
        WS_EX_TOPMOST | WS_EX_LAYERED       
        , szClassName, TEXT("Hello"), 
        WS_OVERLAPPEDWINDOW | WS_VISIBLE
        , 300, 200, 500, 250, NULL, NULL, hInstance, NULL);
 
    COLORREF col = RGB(0,0xff,0);
    SetLayeredWindowAttributes ( hwnd
        , col   // пикселы этого цвета будут прозрачными
        , 128, 
        LWA_COLORKEY 
        //| LWA_ALPHA
        );
WM_PAINT - нарисуем прямоугольник цвета col. Или для фона используем кисть этого цвета.
Миниатюры
Окно-рамка для выделения области экрана  
0
30 / 30 / 15
Регистрация: 02.02.2015
Сообщений: 152
29.06.2017, 19:14  [ТС] 3
Alex5, и дальше что?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.06.2017, 19:14
Помогаю со студенческими работами здесь

Как запретить изменение выделения области ?
вот есть эксель стоит страничный режим и выделена область, как запретить ее изменение ? ...

View - фон\иконки области выделения
Здравствуйте. Находимся в клиенте Lotus Notes. Есть в представлении область в которой можно...

Выделения области определенного цвета на экране
Есть ли программа для выделения области определенного цвета на экране? Хочу автоматизировать...

Как прижать окно MainWindow и окно второе к левому верхнему углу экрана?
Имеется MainWindow (которое по умолчанию) в приложении. Имеется созданное окно (второе)....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru