1

我有窗口句柄,我需要获取像素颜色。

#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 来检查比较吗?如何?

4

1 回答 1

0

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

HDC hDC = CreateDC(L"DISPLAY",0,0,0);
COLORREF rgb5 = GetPixel(hDC,24,507);
于 2013-04-08T16:10:08.280 回答