3268|4

82

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

修改位图像素颜色 [复制链接]

在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);

最新回复

用函数CreateBitmap创建一位图,将你的IDB_BMP_SUN用bitblt贴进新位图,看能不能在新位图上用SetPixel  详情 回复 发表于 2007-7-19 19:31
点赞 关注

回复
举报

80

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
怎么没人回答啊!!!!!!!!!!!!!!!!!!!!!!!!!!
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
是可以用的,我用过.从你上面的代码我也没看出什么问题.你打断点一步一步调试看看呢.
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

4
 
单步调试也没报什么错,就是int nRet=GetLastError();//GetLastError()返回值为87,奇怪得很,说是参数不正确,不知为什么????????
这里返回值是87,COLORREF crOld=bitmapDC.SetPixel(i,j,RGB(255,0,0));
crOld的值全是FFFFFFFF,也就是-1,表示SetPixel函数执行不成功。很奇怪,我查了网上很多资料,也是说SetPixel可以用,可我怎么就得不到正确的结构呢
 
 
 

回复

51

帖子

0

TA的资源

一粒金砂(初级)

5
 
用函数CreateBitmap创建一位图,将你的IDB_BMP_SUN用bitblt贴进新位图,看能不能在新位图上用SetPixel
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表