Я использую этот код, чтобы получить Device Context
(aka DC) объекта/окна в текущей позиции мыши.Почему GetDC возвращает разные значения для одного и того же объекта?
POINT curPos;
while (1)
{
GetCursorPos(&curPos);
printf("hdc: %ld\n", GetDC(WindowFromPoint(curPos)));
Sleep(300);
}
После компиляции и выполнения, я устанавливаю курсор на консоли и оставить его там, не двигаясь, и всегда выводит другое значение (а также отрицательные числа). Например:
hdc: -1795094423
hdc: -1425992173
hdc: 1090588133
hdc: 553717209
hdc: 1979782668
hdc: 2013337074
hdc: -1241444488
Я знаю, что могу использовать GetWindowDC
пойти получить DC
конкретного окна, но я хочу, чтобы получить DC
конкретных частей этого окна.
Заранее спасибо.
Мое предположение, что в окне определено, что используется общий DC, который объединен, поэтому GetDC() возвращает разный DC каждый раз, когда он вызывается. –
Спасибо за ваш ответ. Но это происходит со всеми окнами, а также с рабочим столом. – cdonts
Не следует, если заданное окно используется для использования DC класса или частного DC, и в этом случае GetDC() будет возвращать один и тот же DC каждый раз. –