Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
2442 / 1894 / 341
Регистрация: 22.07.2011
Сообщений: 7,211
1

Получить снимок клиентской области окна и цвет пикселя

08.02.2012, 13:47. Показов 1737. Ответов 1
Метки нет (Все метки)

Всем привет, не шибко знаю С++, но есть две задачи
1. Нужно получить снимок клиентской области окна, притом возможно не активного или перекрытого другими окнами.
2. Нужно получить цвет точки в заданных координатах на полученном снимке.
Есть кое какие наброски на c#, но нужен аналог на С++

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 public static Bitmap GetWindowBMP(IntPtr hwnd, int X, int Y, int W, int H)
        {
            IntPtr srcHDC = user32.GetDC(hwnd);
            IntPtr hDC = gdi32.CreateCompatibleDC(srcHDC);
            IntPtr hBitmap = gdi32.CreateCompatibleBitmap(srcHDC, W, H);
            gdi32.SelectObject(hDC, hBitmap);
            bool Result = gdi32.BitBlt(hDC, 0, 0, W, H, srcHDC, X, Y, TernaryRasterOperations.SRCCOPY);
            Bitmap bmp = Bitmap.FromHbitmap(hBitmap);
            gdi32.DeleteObject(hBitmap);
            gdi32.DeleteDC(hDC);
            gdi32.DeleteDC(srcHDC);
            return bmp;
        }
 
 //Ну а цвет точки на шарпе это как bmp.GetPixel(X,Y), на WinApi нужно как то через полученный дескриптор.
Добавлено через 16 часов 40 минут
Ок, упростим вопрос, как имея дескриптор , получить цвет точки в заданных координатах ? , я так полагаю есть же какой то аналог GetPixel в WinAPI или библиотеках C++ ?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.02.2012, 13:47
Ответы с готовыми решениями:

Цвет клиентской области окна
Доброго времени суток. Вообще я хочу правильно раскрасить окно при нажатии мышки. Код из главной...

Как получить размеры клиентской области окна-родителя в функции дочернего окна?
задание такое: имеется дочернее окно,которое "убегает" от курсора мыши в пределах родительского...

Получить цвет пикселя из неактивного окна, перекрытого другими окнами окна
Можно ли получить цвет пикселя из неактивного или перекрытого другими окна? Какие есть способы?...

Как помимо сообщения WM_SIZE получить размеры клиентской области окна?
Как помимо сообщения WM_SIZE получить размеры клиенсткой области окна?

1
1078 / 1004 / 106
Регистрация: 28.02.2010
Сообщений: 2,889
08.02.2012, 14:02 2
Цитата Сообщение от sau Посмотреть сообщение
есть же какой то аналог GetPixel в WinAPI
http://msdn.microsoft.com/en-u... 85%29.aspx

hDC берете отсюда: http://msdn.microsoft.com/en-u... 85%29.aspx
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.02.2012, 14:02

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Как получить снимок рабочей области окна программы зная его дескриптор?
Как получить снимок рабочей области окна программы зная его дескриптор?

Как получить цвет пикселя неактивного окна?
для получения цвета пикселя экрана использую этот код Private Declare Function GetPixel Lib...

Получить цвет пикселя точки определенного процесса (окна)
Подскажите как можно по координатам определить цвет пикселя зная имя процесса и окна приложения,...

Как поменять цвет клиентской области?
FillRect почему-то вне WM_PAINT не работает. спасибо


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

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

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