У меня есть ручка окна, и мне нужно получить цвет пикселя.Getpixel() из внешнего обработчика окна MFC
#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' также недействителен. –
Делайте вещи в правильном порядке. Вы не инициализируете 'tempHWND' до * после * вызова' GetDC'. –