110,536
社区成员
发帖
与我相关
我的任务
分享
public partial class Form1 : Form
{
[DllImport("user32", ExactSpelling = true, CharSet = CharSet.Ansi, SetLastError = true)]
private static extern int GetDC(int hwnd);
[DllImport("gdi32", ExactSpelling = true, CharSet = CharSet.Ansi, SetLastError = true)]
private static extern int GetPixel(int hdc, int X, int y);
private struct POINTAPI //确定坐标
{
private int X;
private int y;
}
[DllImport("user32", ExactSpelling = true, CharSet = CharSet.Ansi, SetLastError = true)] //确定坐标
private static extern int ReleaseDC(int hwnd, int hdc);
POINTAPI P; //确定坐标
[DllImport("user32", ExactSpelling = true, CharSet = CharSet.Ansi, SetLastError = true)]
private static extern int ScreenToClient(int hwnd, ref POINTAPI lpPoint);
[DllImport("user32", ExactSpelling = true, CharSet = CharSet.Ansi, SetLastError = true)]
private static extern int WindowFromPoint(int xPoint, int yPoint);
......
private void timer1_Tick(object sender, EventArgs e)
{
textBox6.Text = "X=" + System.Windows.Forms.Control.MousePosition.X.ToString() + " " +
"Y=" + System.Windows.Forms.Control.MousePosition.Y.ToString();
int blue;
int green;
int red;
int hD;
int h;
int c;
int a;
int b;
a = Convert.ToInt32(System.Windows.Forms.Control.MousePosition.X.ToString());
b = Convert.ToInt32(System.Windows.Forms.Control.MousePosition.Y.ToString());
h = WindowFromPoint(a, b);
hD = GetDC(h);
ScreenToClient(h, ref P);
c = GetPixel(hD, a, b);
red = c % 256;
green = (c / 256) % 256;
blue = c / 256 / 256;
if (red != -1 && green != -1 && blue != -1)
{
textBox7.BackColor = System.Drawing.Color.FromArgb(red, green, blue);
}
}