int nWidth=GetSystemMetrics(SM_CXSCREEN); int nHeight=GetSystemMetrics(SM_CYSCREEN); for(int i=0;i<nWidth;i++) { for(int j=0;j<nHeight;j++) { HDC hDC = ::GetDC(NULL); //获取屏幕DC //2、 获取当前鼠标位置像素值 CPoint pt; ptx=nWidth; pty=nHeight; COLORREF clr = ::GetPixel(hDC, ptx, pty); if() //你要做的判断 { } } }
你的思路不对
第一 直接把WriteLog里的值赋值给m_Log 然后刷新edit值就可以看见
第二 直接写个WriteLog函数 把内容赋值给m_Log 刷新edit值也可以
在初始化函数里你什么都没有 也不明白你说的关联是什么意思
把一个函数跟一个变量关联? 怎么个关联法?
载入位图可以用LoadBitmap()有两种重载形式
BOOL LoadBitmap( LPCTSTR lpszRecourceName );
BOOL LoadBitmap( UINT nIDResource );
参数: lpszResourceName 指向一个包含了位图资源名字的字符串(该字符串以null结尾)。
nIDResource 指定位图资源中资源的ID号。
获取位图可以用GetBitmapBits()
DWORD GetBitmapBits( DWORD dwCount, LPVOID lpBits ) const;
CBitmap::GetBitmap
int GetBimap( BITMAP pBitMap );
返回值:调用成功时返回非零值,否则为0。
参数: pBitMap 指向BITMAP结构的一个指针,不能为NULL。
说明:
本函数用于查看CBitmap对象的信息。返回的信息存放在pBitMap指向的BITMAP结构中。
BITMAP结构如下:
BITMAP结构具有如下形式:
typedef struct tagBITMAP
{ / bm /
int bmType;
int bmWidth;
int bmHeight;
int bmWidthBytes;
BYTE bmPlanes;
BYTE bmBitsPixel;
LPVOID bmBits;
} BITMAP;
BITMAP结构定义了逻辑位图的高,宽,颜色格式和位值。
成员: bmType 指定了位图的类型。对于逻辑位图,这个成员必须为0。
bmWidth 指定了位图的宽度,以像素为单位。宽度必须大于0。
bmHeight 指定了位图的高度,以扫描行为单位。高度必须大于0。
bmWidthBytes 指定了每个扫描行中字节的数目。这个值必须是个偶数,因为图形设备接口(GDI)假定位图中的位值构成一个整数(2字节)数组。换句话说,bmWidthBytes8必须是16的倍数,大于或等于bmWidth与bmBitsPixel相乘所得的值。
bmPlanes 指定了位图中颜色平面的数目。
bmBitsPixel 指定了每个位平面中用于定义一个像素所需的颜色位数。
bmBits 指向位图中位值的位置。bmBits成员必须是一个指向单字节数组的长指针。
注释:
现在使用的位图格式有单色的和彩色的。单色的位图使用每个位平面一位的格式。每个扫描线是16的倍数。
对于一个高度为n的单色位图,扫描线是按照如下方式组织的:
Scan 0
Scan 1
Scan n-2
Scan n-1
单色设备上的像素不是黑就是白。如果位图中对应的位是1,则像素就被打开(白)。如果对应的位是0,则像素被关闭(黑)。
所有具有RC_BITBLT位的设备都支持位图,该位是在CDC::GetDeviceCaps成员函数的RASTERCAPS索引中设置的。
每个设备都有它自己的颜色格式。为了在不同的设备间传递位图,使用Windows的GetDIBits和SetDIBits函数。
给你举个例子:
CBitmap m_bmp;
BITMAP pBitMap;
m_bmpLoadBitmap("d:\\\\示例\\flowerbmp");//加载位图
m_bmpGetBitmap(pBitMap);//获取位图信息
int i,j;
DWORD color=pBitMap->bmBits[ipBitMap->bmHeight+pBitMap->bmWidth];//访问第i行第j列像素点的颜色值
Graphics graphics(m_hWnd);
Image img(L"xxxxjpg");
graphicsTranslateTransform(600,10);//平移
graphicsRotateTransform(25);//旋转
graphicsDrawImages(&img,0,0,a,b);//a,b放大的大小
另外,站长团上有产品团购,便宜有保证
以上就是关于VC++/MFC如何提取屏幕上每一点的RGB值并判断全部的内容,包括:VC++/MFC如何提取屏幕上每一点的RGB值并判断、如何用VC++2010编写一个获取屏幕分辨率的MFC 以下是我的编写过程,实在进行不下去了,求指导!、【高分求救】VC++下如何载入一张位图并获取该位图的像素值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)