6 / 6 / 7
Регистрация: 19.03.2016
Сообщений: 50
1

Нарисовать рамку вокруг чужого окна

22.03.2016, 15:32. Показов 1859. Ответов 6

Во всяких программах для захвата экрана (или в Spy++ ещё) вокруг выбранного окна рисуется рамка, чтобы показать пользователю, что выбрано именно оно. Как это реализуется?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.03.2016, 15:32
Ответы с готовыми решениями:

Может ли оконная процедура различить, изменён ли размер окна функцией MoveWindow, или мышью за рамку окна?
Стиль WS_BORDER | WS_SIZEBOX | WS_CHILDWINDOW | WS_CLIPSIBLINGS | WS_THICKFRAME | WS_VISIBLE.

Хук на скролл чужого окна
Доброй ночи. Необходимо отследить события от скролла в чужом окне. Есть dll в которой...

Доступ к контролам чужого окна
Как можно получить доступ к контролам чужого окна, зная его HWND? Конкретно мне нужно тестовое...

Сменить цвет чужого окна
Всем привет. Собственно надо сменить цвет чужого окна.

6
79 / 79 / 20
Регистрация: 13.05.2009
Сообщений: 537
Записей в блоге: 1
23.03.2016, 13:04 2
либо DirectDraw, либо делаем скрин экрана на нем рисуем рамку в заданных координатах и выводим на экран в окне без рамки поверх всех окон
0
Хитрая блондиночка $)
1464 / 979 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
23.03.2016, 13:09 3
Лучший ответ Сообщение было отмечено iars как решение

Решение

А я бы попробовала просто форму показать сзади целевого окна. Но размеры формы на 10 пикселей бы по границам увеличила. Так и рисовать ничего не надо.
1
79 / 79 / 20
Регистрация: 13.05.2009
Сообщений: 537
Записей в блоге: 1
23.03.2016, 13:52 4
Hikari, можно и так но тогда нужно определить z позицию она и вставить свое в аккурат позади него
0
Хитрая блондиночка $)
1464 / 979 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
23.03.2016, 14:41 5
Цитата Сообщение от MrAndrey_ka Посмотреть сообщение
но тогда нужно определить z позицию она и вставить свое в аккурат позади него
Думаю это тоже решимая задача.
0
6 / 6 / 7
Регистрация: 19.03.2016
Сообщений: 50
24.03.2016, 16:07  [ТС] 6
Hikari, идея! благодарю.
0
239 / 212 / 84
Регистрация: 18.03.2010
Сообщений: 750
24.03.2016, 20:00 7
Я вот не пойму, а чем вам стандартные методы рисования не приемлемы? Взяли контекст экрана и рисуйте что угодно и где угодно. Вот на простейшем примере одного окна, при нажатой ЛКМ отрисовуется рамка вокруг него, отпускаем ЛКМ - рабочий стол обновляем. Все.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
case WM_LBUTTONDOWN:
{
    RECT rc;
    int ld = 3;
    HPEN pen = CreatePen(PS_SOLID, ld, RGB(255,0,255));
    GetWindowRect(hWnd, &rc);
    HDC hdc = GetDC(NULL);
    SelectObject(hdc, GetStockObject(NULL_BRUSH));
    HGDIOBJ obj = SelectObject(hdc, pen);
    //рисуем рамку вокруг окна
    Rectangle(hdc, rc.left - ld, rc.top - ld, rc.right + ld, rc.bottom + ld);
    DeleteObject(SelectObject(hdc, obj));
    ReleaseDC(NULL, hdc);
    break;  
}
 
case WM_LBUTTONUP:
{   //обновляем рабочий стол
    HWND wnd = FindWindow("SysListView32", "FolderView");
    InvalidateRect(wnd, NULL, true);
    break;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.03.2016, 20:00

Дожидание закрытия чужого окна
Всем доброго времени суток, ситуация следующая: перед выполнением некого действия (копирования...

Захват дескриптора (handle) чужого окна
Можно ли из моей программы управлять окном которое создано другим приложением (закрывать,...

Как нарисовать рамку прямоугольника толщиной 2 пиксела?
Всем здравствуйте. // Рисуем прямоугольник жёлтого цвета с чёрной рамкой (по-умолчанию)...

Как мне перехватить перерисовку чужого окна
Вариант погугли не подходит ибо там ничего нету. Мне надо узнать только что окно перерисовалось !


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.