Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];

Вниз

Как получить любой пиксель (его цвет) на экране? И что такое hdc?   Найти похожие ветки 

 
Chrom   (2005-03-05 19:41) [0]

Как получить любой пиксель (его цвет) на экране? И что такое hdc?
То есть цвет пикселя ваще из любого окна.


 
Anatoly Podgoretsky ©   (2005-03-05 19:56) [1]

Canvas[i, j]


 
Юрий Зотов ©   (2005-03-05 19:57) [2]

function GetScreenPointColor(X, Y: integer): TColor;
var
 DC: HDC;
begin
 DC := GetDC(GetDesktopWindow);
 try
   Result := GetPixel(DC, X, Y)
 finally
   ReleaseDC(GetDesktopWindow, DC)
 end
end;

HDC - хэндл контекста устройства. Что это такое - долго рассказывать, смотрите концепции графики Windows.


 
Defunct ©   (2005-03-05 23:08) [3]

Юрий Зотов ©   (05.03.05 19:57) [2]

А Вы часом не в курсе, что есть окно с Handle = 0?

GetDesktopWindow <> 0.
часто применяют GetDC( 0 ).


 
Defunct ©   (2005-03-05 23:13) [4]

Defunct ©   (05.03.05 23:08) [3]

Всмысле, что это за окно такое?
или 0 - handle несуществующего окна?


 
GuAV ©   (2005-03-05 23:54) [5]

http://msdn.microsoft.com/library/en-us/gdi/devcons_4esj.asp


 
Дмитрий Мыльников   (2005-03-06 15:35) [6]

Handle = 0  это экран монитора. Вызов GetDC(0) обычно применяется для того, чтобы потом через этот HDC получить текущие настройки режима отбражения (количество цветов, палитру и т.д.).
Если мне не изменяет память, то через нео же можно рисовть в любом месте экрана, а также получать цвет любого пиксела на экране.

Да, в Delphi для работы с экраном в целом можно использовать глобальный объект Screen, в том числе оттуда можно получить текущее разрешение экрана, просто считав свойства Screen.Width и Screen.Height. А можно и размер рабочей области (Desktop) без различных панелей снизу или с боков. Более подробно см. Help по Screen.


 
Юрий Зотов ©   (2005-03-06 15:57) [7]

> Defunct ©   (05.03.05 23:08) [3]

Не может быть!


 
Gero ©   (2005-03-06 15:58) [8]


> Handle = 0  это экран монитора.

Экран монитора имеет Handle?


 
Palladin ©   (2005-03-06 16:34) [9]

Конечно, как неотьмлимая часть операционной системы Windows, экран монитора имеет все... все что под руки попадется... так же свой Handle имеет подставка под монитор и коврик для мыши.


> А можно и размер рабочей области (Desktop)

Да что вы говорите... а я всю жизнь думал что свойства TScreen связанные с размером рабочей области имеют приставку WorkArea....


> Вызов GetDC(0) обычно применяется для того, чтобы потом
> через этот HDC получить текущие настройки режима отбражения
> (количество цветов, палитру и т.д.).

GetDC() - обычно применяется для получения device context, в случае 0 получения у desktop"а...


 
Defunct ©   (2005-03-06 20:43) [10]

Юрий Зотов ©   (06.03.05 15:57) [7]
> Не может быть!

confused...


 
Юрий Зотов ©   (2005-03-06 21:03) [11]

> Defunct ©   (06.03.05 20:43) [10]

Не знаю (никогда не занимался такими темами, как Multiple Display Monitors, Virtual Desktops и т.п.), но не исключено, что для таких случаев между GetDC(0) и GetDC(GetDesktopWindow) все же может быть разница.


 
Palladin ©   (2005-03-06 21:31) [12]

Есть конечно. Примерно та же что и между

Var
P:Pointer;

If Integer(P)=0
и
If P=Nil


 
Дмитрий Мыльников   (2005-03-06 22:08) [13]

> Да что вы говорите... а я всю жизнь думал что свойства TScreen
> связанные с размером рабочей области имеют приставку WorkArea.
А я разве сказал через какие свойства получаются размеры рабочей области? Я сказал см. Help.


 
Fenik   (2005-03-06 22:47) [14]

>Anatoly Podgoretsky ©  (05.03.05 19:56) [1]
>Canvas[i, j]

Айай :))



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.031 c
1-1110033485
ПроНыРа
2005-03-05 17:38
2005.03.20
ToolBar


14-1109851963
DiamondShark
2005-03-03 15:12
2005.03.20
Беглый взгляд на первую страницу.


14-1109739583
begin...end
2005-03-02 07:59
2005.03.20
С Днём рождения! 2 марта


1-1109835699
salexn
2005-03-03 10:41
2005.03.20
Совместимость Clipboard и русских букв


6-1105613443
Homa_Programer
2005-01-13 13:50
2005.03.20
СОКЕТЫ :(





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский