用C语言写的sdk小程序(平台是VC2005)。
目的是从当前屏幕截取一块区域写入内存,并从内存中读取某一点的颜色信息。
代码如下:
int ququyucunruneicun()
{
BYTE tempxiangsuzhi=0; //定义一个临时像素值变量。
BITMAPINFO weitujiegou01;
int *ppv01=NULL;
HDC dangqianjubing=GetDC(0) ;//将当前环境句柄赋予一个常量。
HDC cuntujubing=CreateCompatibleDC(dangqianjubing);//建立一个与当前显示器兼容的环境句柄。
HBITMAP timeneicun01 = CreateDIBSection(cuntujubing, & weitujiegou01, DIB_RGB_COLORS,(void
**)&ppv01, NULL, 0);//定义一个位图,
SelectObject(cuntujubing, timeneicun01);
BitBlt(cuntujubing,0,0,30,30,dangqianjubing,200,200,SRCCOPY);
tempxiangsuzhi=weitujiegou01.bmiColors[1].rgbRed;
ReleaseDC(0, dangqianjubing);
ReleaseDC(0, cuntujubing);
return tempxiangsuzhi;
}
程序编译通过,为什么返回值tempxiangsuzhi总是一个数204????问题出在哪里呢?请行家帮忙,不慎感激!
目的是从当前屏幕截取一块区域写入内存,并从内存中读取某一点的颜色信息。
代码如下:
int ququyucunruneicun()
{
BYTE tempxiangsuzhi=0; //定义一个临时像素值变量。
BITMAPINFO weitujiegou01;
int *ppv01=NULL;
HDC dangqianjubing=GetDC(0) ;//将当前环境句柄赋予一个常量。
HDC cuntujubing=CreateCompatibleDC(dangqianjubing);//建立一个与当前显示器兼容的环境句柄。
HBITMAP timeneicun01 = CreateDIBSection(cuntujubing, & weitujiegou01, DIB_RGB_COLORS,(void
**)&ppv01, NULL, 0);//定义一个位图,
SelectObject(cuntujubing, timeneicun01);
BitBlt(cuntujubing,0,0,30,30,dangqianjubing,200,200,SRCCOPY);
tempxiangsuzhi=weitujiegou01.bmiColors[1].rgbRed;
ReleaseDC(0, dangqianjubing);
ReleaseDC(0, cuntujubing);
return tempxiangsuzhi;
}
程序编译通过,为什么返回值tempxiangsuzhi总是一个数204????问题出在哪里呢?请行家帮忙,不慎感激!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货