|
在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
{
for(int j=0;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);
|
|