Создание рамки поверх всех окон
От: DynoMEAT Россия  
Дата: 20.02.06 18:27
Оценка:
Необходимо предоставить пользователю возможность выделять прямоугольную область экрана. Было решено для этих целей реализовать следующее:
На экране появляется рамка, размеры которой пользователь может изменять с помощью мыши (потянув за нужную границу).

Вопрос:
Как это лучше всего реализовать (с помощью регионов, может просто прорисовывать на экране с GDI или какой-то другой вариант)? Может есть готовые примеры?
Re: Создание рамки поверх всех окон
От: ekamaloff Великобритания  
Дата: 21.02.06 05:24
Оценка:
Здравствуйте, DynoMEAT, Вы писали:

DME>Необходимо предоставить пользователю возможность выделять прямоугольную область экрана. Было решено для этих целей реализовать следующее:

DME>На экране появляется рамка, размеры которой пользователь может изменять с помощью мыши (потянув за нужную границу).

DME>Вопрос:

DME>Как это лучше всего реализовать (с помощью регионов, может просто прорисовывать на экране с GDI или какой-то другой вариант)? Может есть готовые примеры?

Просто как вариант — создать окно на весь экран, скопировать на него изображение рабочего стола. Рамку рисовать и мышиные события обрабатывать соответственно на нем.
It is always bad to give advices, but you will be never forgiven for a good one.
Oscar Wilde
Re: Создание рамки поверх всех окон
От: kero Россия  
Дата: 21.02.06 07:31
Оценка:
Здравствуйте, DynoMEAT, Вы писали:

DME>Необходимо предоставить пользователю возможность выделять прямоугольную область экрана. Было решено для этих целей реализовать следующее:

DME>На экране появляется рамка, размеры которой пользователь может изменять с помощью мыши (потянув за нужную границу).

DME>Вопрос:

DME>Как это лучше всего реализовать (с помощью регионов, может просто прорисовывать на экране с GDI или какой-то другой вариант)? Может есть готовые примеры?

Окно-рамка. Хоть так: WS_POPUP, WS_THICKFRAME, WS_EX_TOOLWINDOW, WS_EX_TOPMOST, а в оконной процедуре — (GetWindow)Rect минус (GetClient)Rect, через CombineRgn/RGN_DIFF.
По всему, пашиным хозяевам позарез нужна война в Европе
(уверены — к ним не залетит, в предыдущих двух не залетало жеж)
Автор: kero
Дата: 21.07.14
Re: Создание рамки поверх всех окон
От: last_hardcoder  
Дата: 21.02.06 07:42
Оценка:
Здравствуйте, DynoMEAT, Вы писали:

DME>Необходимо предоставить пользователю возможность выделять прямоугольную область экрана. Было решено для этих целей реализовать следующее:

DME>На экране появляется рамка, размеры которой пользователь может изменять с помощью мыши (потянув за нужную границу).

DME>Вопрос:

DME>Как это лучше всего реализовать (с помощью регионов, может просто прорисовывать на экране с GDI или какой-то другой вариант)? Может есть готовые примеры?

Используй SetWindowRgn (в обработчике WM_SIZE или WM_WINDOWPOSCHANGED). В качестве региона оставь одну рамку.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.