作者cross0619 ()
看板C_Sharp
标题[问题] 如果取得特定座标的颜色
时间Sat Jun 26 01:59:15 2010
各位好 小弟我在网路上头查到的方法有两个
一.
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
[DllImport("Gdi32.dll")]
public static extern int GetPixel(System.IntPtr hdc,int nXPos,
int nYPos);
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
Graphics g = CreateGraphics();
System.IntPtr hDC = g.GetHdc();
int c = GetPixel(hDC, e.X, e.Y);
}
}
而且方法中提到需using System.Runtime.InteropServices;
二.
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
int a = 0;
a = this.GetChildAtPoint(new Point(e.X,e.Y)).ForeColor.ToArgb();
}
}
这两个方法小弟我是完全不了解...第一次使用这个东西
第一个方法虽然可行 但是却只能够抓没有被元件覆盖到的座标
就是说 有元件的地方点了没有用
第二个方法则是完全没用 只要执行就会跑出"并未将物件参考设定为物件的执行个体"
究竟第二个方法是哪里出问题呢 new一个Control来执行也不行(这方式感觉有点蠢...)
第一个方法虽然可以使用 但我真正需要的是"某个座标的颜色"
请知道方法的大大们指导一下了
可以的话 也请顺便解释一下第一个方法到底是在写什麽...完全看不懂
先谢过了
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.167.175.35