VCは画面上の任意の点位置の色を取得する
この文章は実は多くの人の作品を参考にして、ここで一つ一つ感謝しました.
次の内容が含まれます.
(1)動的設定コントロールの色
(2)マウス位置の取得
(3)CButtonST
プログラムのインタフェースの効果は下図のようです:
ソースコードエンジニアリングのダウンロード、分割しないでください:http://download.csdn.net/detail/luofl1992/4478349
画面上の任意のポイント位置の色を簡単に取得できます.RGB表示.ウィンドウを最下化した場合の読み取り色など、追加の必要があれば、自分でコードを書き換えることができます.
キーは、タイマーを設定し、タイマー関数で次のように設定します.
次の内容が含まれます.
(1)動的設定コントロールの色
(2)マウス位置の取得
(3)CButtonST
プログラムのインタフェースの効果は下図のようです:
ソースコードエンジニアリングのダウンロード、分割しないでください:http://download.csdn.net/detail/luofl1992/4478349
画面上の任意のポイント位置の色を簡単に取得できます.RGB表示.ウィンドウを最下化した場合の読み取り色など、追加の必要があれば、自分でコードを書き換えることができます.
キーは、タイマーを設定し、タイマー関数で次のように設定します.
void CGetScreenPixelDlg::OnTimer(UINT_PTR nIDEvent)
{
// TODO: /
// DWORD dwPos = GetMessagePos();
// CPoint point( LOWORD(dwPos), HIWORD(dwPos) );
// HWND hwnd=::GetForegroundWindow();
CPoint point;
GetCursorPos(&point);
HDC hDC = ::GetDC(NULL);
//
COLORREF color = ::GetPixel(hDC, point.x, point.y);
// ( )
m_colorState.SetBkColor(color);
//
posx = point.x;
posy = point.y;
red = GetRValue(color);
green = GetGValue(color);
blue = GetBValue(color);
UpdateData(FALSE); //
CDialogEx::OnTimer(nIDEvent);
}