У меня есть дескриптор окна, и мне нужно получить цвет пикселя.
#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 для проверки сравнения? и как?
0xcccccc
недопустимое значение. Вероятно, вашtempHWND
тоже недействителен. - person   schedule 14.03.2013tempHWND
до после вызоваGetDC
. - person Mark Ransom   schedule 14.03.2013