赞
踩
好久没有写博客了,准备想坚持写,才刚开了一个头就没坚持下来,恰好今天有点时间,所以就打算写一篇博客。
上一篇我通过获取第三方窗体句柄将第三方窗体嵌入到自己的窗体中,很多时候不是嵌进取就完事了,我们需要操作第三方窗体,获取读取上面的信息,通常我们会读取上面的像素,所以今天就介绍如何读取第三方窗体指定点的像素。
通常我们想到的就是截图,一般电脑自带的截图就是截取整个屏幕,由于坐标的关系,这不利于我们后续的处理。所以win32api库给我们提供了一个很好的方法
HDC GetDC(HWND hWnd),
hWnd:设备上下文环境被检索的窗口的句柄,如果该值为NULL,GetDC则检索整个屏幕的设备上下文环境。
返回值:如果成功,返回指定窗口客户区的设备上下文环境;如果失败,返回值为Null。
这就是用来截取指定窗体的图像,如何调这个方法大家就自己百度一下如何调win32api库就行,非常简单的。得到截图后,我们还需要对图像就行像素提取,我这里用的是gdi库下的
GetPixel(HDC hdc, int nXPos, int nYPos)函数,
}
我这里直接将它封装成了一个方法大家可以直接调用就行。
private void button1_Click(object sender, EventArgs e)
{
Color c= GetColor((IntPtr)handle,10,10);
richTextBox1.AppendText("R:"+c.R.ToString()+"\r\n");
richTextBox1.AppendText("G:" + c.G.ToString() + "\r\n");
richTextBox1.AppendText("B:" + c.B.ToString() + "\r\n");
}
执行结果:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。