Get Window Pixel
Hello:
I have a pixel on the screen that I'm trying to obtain the color. The pixel
is found in a static control, which is a class derived from CStatic.
class CReflectColorWnd : public CStatic
I've tried many ways to obtain the pixel, but I cannot attain the COLORREF
of the pixel. I'm wondering if anyone would be kind enough to assist me.
I've tried the following in the paint handler.
void CReflectColorWnd::OnPaint()
{
CStatic::OnPaint(); // Call original paint
CClientDC dc(this);
CBitmap bm;
bm.CreateCompatibleBitmap(&dc, 100, 100);
CDC memDC;
memDC.CreateCompatibleDC(&dc);
CBitmap *pOrigBM = memDC.SelectObject(&bm);
this->SendMessage(WM_PRINT, (WPARAM)memDC.GetSafeHdc(), (LPARAM)PRF_CLIENT);
COLORREF cr = memDC.GetPixel(5, 5);
memDC.SelectObject(pOrigBM);
.. // Do something with the color obtained
}
This code, unfortunately, does not seem to work. I've been reading some
articles in the Newsgroups, and they indicate I should just obtain a
CClientDC to the window and just call .GetPixel(). I -- by experience --
perceive this to be a flaw, but I could be wrong. A DC doesn't take the
screen pixels to initialize the DC, does it? That said, I've tried it their
way and still have yet to obtain the pixel colors. Any ideas of what I can
alter or any other methods of obtaining the pixel? Thank you, all.
Saul775