Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 05.06.2013
Сообщений: 4

Выделение области поверх всех окон

30.06.2013, 01:25. Показов 1543. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, пишу нечто вроде скриншотера и у меня возникло несколько вопросов, ответы на которые найти я не смог:
1. Как убрать мерцание при отрисовке прямоугольника?
2. Как прямоугольник залить полупрозрачным цветом?
3. Как это выделение поместить поверх всех окон и область вне прямоугольника затемнить?
4. Как сделать что бы можно было выделять не только слева направо и сверху вниз но и наоборот?

Код к которому я пришел:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream> 
#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <gdiplus.h>
 
int main()
{
    HDC scrdc, memdc;
           scrdc = GetDC(0);
    POINT lt, rd; 
    int key = 0, m1, check = 0;
    while (check != 1)
    {
        m1 = GetAsyncKeyState (VK_LBUTTON);
        if (m1 == -32768)
        {
            GetCursorPos (&lt);
        }
            while (m1 == -32768)
        {
            m1 = GetAsyncKeyState (VK_LBUTTON);
            GetCursorPos (&rd);
            Rectangle (scrdc, lt.x, lt.y, rd.x, rd.y);
            check = 1;
        }
            
    }
    system("cls");
}
MSVS 2012.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.06.2013, 01:25
Ответы с готовыми решениями:

Нарисовать текст поверх всех окон
Как можно нарисовать текст поверх всех окон. К примеру что бы текст рисовался и при просмотре видео и во время игр

Окно на переднем плане, поверх всех окон: получить статус/задать
Как можно узнать: 1) Располагается ли окно с заданным хендлом на переднем плане? 2) Хендл активного окна. 3) Установлен ли атрибут...

Создать прозрачное окно, которое бы было поверх всех окон, но не в фокусе
Возможно ли вот такое.Создать прозрачное окно которые бы было поверх всех окон но не в фокусе.Например игаю я в игру а оно мне показывает...

1
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
30.06.2013, 13:09
Цитата Сообщение от Shayne Посмотреть сообщение
1. Как убрать мерцание при отрисовке прямоугольника?
Использовать двойную буферизацию.

Цитата Сообщение от Shayne Посмотреть сообщение
2. Как прямоугольник залить полупрозрачным цветом?
Залить - никак. Нужно при создании окна указать расширенный стиль WS_EX_LAYERED, а
затем вызвать функцию SetLayeredWindowAttributes и задать степень прозрачности.
Альтернативный вариант, позволяющий иметь разные градации прозрачности в окне -
это использовать ARGB и UpdateLayeredWindow.

Цитата Сообщение от Shayne Посмотреть сообщение
3. Как это выделение поместить поверх всех окон и область вне прямоугольника затемнить?
Поверх всех окон - это расширенный стиль WS_EX_TOPMOST.
Ну а затемнить все остальное - это, наверное, нужно маску какую-нибудь наложить
на весь рабочий стол. Или вообще сделать его снимок, затемнить, и отобразить на
другом рабочем столе. Так, например, работает UAC и некоторые программы типа KeePass.

Цитата Сообщение от Shayne Посмотреть сообщение
4. Как сделать что бы можно было выделять не только слева направо и сверху вниз но и наоборот?
Ручками
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.06.2013, 13:09
Помогаю со студенческими работами здесь

Надежный способ вывести окно другого приложения поверх всех окон Windows
Задаю вопрос в этом разделе по WinAPI, хотя код на C#. Нахожу handle окна другого приложения, которое нужно вывести поверх всех окон....

Перемещение окон по рабочей области
помогите написать программу на С++ с перемещением окон по рабочей области

Окно поверх всех
Как создать(или придать стиля) окну, чтобы оно было поверх всех, даже в windows 8, поверх диспетчера задач(HWND_TOPMOST не помогает)

Позиционирование monthCalendar в видимой области и поверх всех окон
Доброго времени суток. Имеется код, который по нажатию на таблицы определяет, какая ячейка выбрана в данный момент и если выбрана...

Торчит в районе области уведомлений и ВСЕГДА поверх всех окон.
Сограждане. Не могу понять что за хрень выскочила. К семерке она относится или вообще левая программа? Торчит в районе области...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 31.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 31.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 30.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru