У меня есть дескриптор окна, и мне нужно получить цвет пикселя.
#include "Globals.h"void MainHamsterDlg::OnTimer(UINT nIDEvent)
{
Sleep(4000);
HDC hDC = ::GetDC(tempHWND);
COLORREF rgb = GetPixel(hDC,351,515);
if(GetPixel(hDC,351,515) == RGB(33,30,28))
AfxMessageBox(L"Please select or write correct name!");
::ReleaseDC(tempHWND, hDC);
CDialog::OnTimer(nIDEvent);
}
Отговорка говорит, что COLORREF rgb = GetPixel(hDC,351,515);
получает значение 3225917
мне нужно конвертировать в RGB, чтобы проверить для сравнения?
Я не понимаю, что не так, потому что я новичок в MFC.
#include "Globals.h"void WaitProcessDlg::OnTimer(UINT nIDEvent)
{
if(::FindWindow(NULL, str)){
tempHWND = ::FindWindow(NULL, str);
::SetWindowText(tempHWND, L"Weather");
EndDialog( 0 );
KillTimer(IDC_PROGRESS1);
}
CDialog::OnTimer(nIDEvent);
}
Здесь ручка окна и ее ручка окна. Я проверил с изменением названия.
Я использую Globals для переноса дескриптора окна из одного диалогового окна в другое.
Globals.h
-------------------
#pragma once
extern HWND tempHWND;
--------------------
Итак, мой вопрос: мне нужно конвертировать в RGB, чтобы проверить для сравнения? и как?
Я использую другой код, чтобы сделать это и его работу!
HDC hDC = CreateDC(L"DISPLAY",0,0,0);
COLORREF rgb5 = GetPixel(hDC,24,507);
Других решений пока нет …