我用VC6.0建了个MFC工程,使用WebBrowser控件把把网页中的验证码复制到了剪贴板中
用下面几行代码成功在Picture控件里显示出了验证码:
HBITMAP hbm=(HBITMAP)GetClipboardData(CF_BITMAP);
//显示验证码,m_picture是Picture控件关联的Static类型变量
m_picture.SetBitmap(hbm);
m_picture.Invalidate();接着我希望把位图从剪贴板中复制出来以便分析其像素。可是出现了问题
CDC *pCodeDc=this->m_picture.GetDC();
CDC memDC;
memDC.CreateCompatibleDC(pCodeDc);
CBitmap cbmpCode;
CRect rect;
this->m_picture.GetClientRect(&rect);
cbmpCode.CreateCompatibleBitmap(pCodeDc,rect.Width(),rect.Height());
memDC.SelectObject(&cbmpCode);
BITMAP Bitmap;
cbmpCode.GetBitmap(&Bitmap);
memDC.BitBlt(0,0,Bitmap.bmWidth,Bitmap.bmHeight,pCodeDc,0,0,SRCCOPY);
我为了证实位图从剪贴板被完整复制到了memDC中,就想在另一个Picture控件中显示memDC里的位图,
看看是不是原来的验证码图片:
CBitmap bmpnew;
bmpnew.CreateCompatibleBitmap(&memDC,Bitmap.bmWidth,Bitmap.bmHeight);
//m_newPicture是新Picture控件关联的Static类型变量。
//这一句运行结果虽然显示的图像大小和原来验证码图一样,但颜色全黑
this->m_newPicture.SetBitmap(bmpnew);
我不明白为何颜色全是黑色,而不是原来的验证码图片。我的代码哪里有错误,恳请高人指教。