1
我有窗口句柄,我需要獲取像素顏色。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檢查比較? 我不uderstund有什麼不對,因爲我是新的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'也是無效的。 – 2013-03-14 14:06:13
按正確順序做事。在* GetDC調用之前,您不會初始化'tempHWND'。 – 2013-03-14 14:46:54