C++ 来自外部窗口句柄MFC的Getpixel()
我有窗口句柄,我需要得到像素颜色C++ 来自外部窗口句柄MFC的Getpixel(),c++,mfc,getpixel,C++,Mfc,Getpixel,我有窗口句柄,我需要得到像素颜色 #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))
#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,351515)
获取值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);
0xCCCC
是无效值。您的tempHWND
可能也无效。请按正确的顺序操作。在调用GetDC
之前,您不会初始化tempHWND
。