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.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 に答える