当前位置: 代码迷 >> WinCE >> 修改位图像素颜色,该怎么解决
  详细解决方案

修改位图像素颜色,该怎么解决

热度:92   发布时间:2016-04-28 13:29:18.0
修改位图像素颜色
在EVC上对一幅位图的每个像素设置颜色,采用setpixel函数,同样的代码,在VC上可以运行得到正确结果,但放在EVC上运行就不起作用,编译可以通过也可以运行,就是没效果出来,不知是否setpixel在evc上不支持?
                  CDC   *pDC   =   GetDC();
CBitmap   bitmap;
bitmap.LoadBitmap(IDB_BMP_SUN);//IDB_BMP_SUN是位图资源ID

BITMAP   bmpInfo;
bitmap.GetBitmap(&bmpInfo);

CDC   bitmapDC;
bitmapDC.CreateCompatibleDC(pDC);
CBitmap*   pOldBitmap   =   bitmapDC.SelectObject(&bitmap);
((CListBox   *)GetDlgItem(IDC_LIST1))-> ResetContent();
((CListBox   *)GetDlgItem(IDC_LIST1))-> SetHorizontalExtent(500);
for(int   i=0;i <bmpInfo.bmWidth;i++)
{
for(int   j=0;j <bmpInfo.bmHeight;j++)
{
COLORREF   crOld=bitmapDC.SetPixel(i,j,RGB(255,0,0));
int   nRet=GetLastError();//GetLastError()返回值为87,奇怪得很,说是参数不正确,不知为什么????????
CString   strTemp;
strTemp.Format(_T( "nRet=%d;i=%d;j=%d;crOld=%X "),nRet,i,j,crOld);
((CListBox   *)GetDlgItem(IDC_LIST1))-> AddString(strTemp);
}
}
pDC-> BitBlt(50,   15,   bmpInfo.bmWidth,   bmpInfo.bmHeight,   &bitmapDC,   0,   0,   SRCCOPY);

bitmap.DeleteObject();
bitmapDC.DeleteDC();
ReleaseDC(pDC);

------解决方案--------------------
是可以用的,我用过.从你上面的代码我也没看出什么问题.你打断点一步一步调试看看呢.
  相关解决方案