700*1000像素,处理一次要用270毫秒,太慢了。请大家帮忙,看看有没有别的方法。
解决方案 »
- VC6.0下如何把动态库加载进来?
- 为什么调用invalidateRect()以后还要调用UpdateWindow()函数?
- MFC中如何将BYTE颜色数组显示出来?
- 现在还能捕获到qq2007输入框的内容吗
- Hook类的成员函数问题,高人帮帮我啊~~~
- CSocket 的接受问题?????
- 我想一个对话框的问题
- 请问那里有 Visual Assist 的最新(4.1)注册码啊? 能发一个给我吗?
- 大虾指点下我的这段代码有什么问题,关于excel,new,delete
- javascript响应ActiveX事件的问题
- 想学一门网络编程语言,我已经有c/c++和MFC编程基础了,请教学那种语言比较好,谢谢!进来有分!
- dao数据库增加问题
要Excel也这速度,谁还用Excel呀。
SetROP2(R2_MASKPEN)
CBrush br;
br.CreateSolidBrush(RGB(128,128,128));
CBrush* pOldBr = (CBrush* )pMemDC->SelectObject(&br);
int o2;
RGBQUAD rgb;
//rgb是背景色
if((unsigned int)rgb.rgbBlue+(unsigned int)rgb.rgbRed+(unsigned int)rgb.rgbGreen > 500)
o2 = pMemDC->SetROP2(R2_MASKPEN);
else
o2 = pMemDC->SetROP2(R2_MERGEPEN); CPen* pOldPen = (CPen* )pMemDC->SelectObject(CPen::FromHandle((HPEN)GetStockObject(NULL_PEN)));
pMemDC->Rectangle(nLeft, nTop+1, nRight, nBottom-1);
pMemDC->SetROP2(o2);
您的代码只是仿半透明,对于黑色字体没有效果。而Excel却可以改变,可见Excel是用半透明的处理方法。仍然感谢您的回答,我怎么给你分呢?
对复杂背景的叠加,如果涉及到文字对文字,位图对位图的叠加,那么ROP2就无效了,你所说的选种效果,我相信一定是用ROP2