从外部窗口处理MFC获取pixel()

时间:2013-03-14 14:02:09

标签: 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))
          AfxMessageBox(L"Please select or write correct name!");

      ::ReleaseDC(tempHWND, hDC);

       CDialog::OnTimer(nIDEvent);
    }

Debuging说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来检查比较吗?怎么样?

1 个答案:

答案 0 :(得分:0)

我使用不同的代码来实现它的工作!

HDC hDC = CreateDC(L"DISPLAY",0,0,0);
COLORREF rgb5 = GetPixel(hDC,24,507);