关于TransparentBlt的有关问题,内详,附代码,请进!解决马上结贴

关于TransparentBlt的问题,内详,附代码,请进!解决马上结贴
我想把一幅图片缩小,以1:2的比例显示出来,代码如下:

//加载图片
HBITMAP   bmp=(HBITMAP)::LoadImage(0, "c:\\1.bmp ",IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION   |LR_DEFAULTSIZE   |LR_LOADFROMFILE);
CDC   dc1,dc2;
dc1.CreateCompatibleDC(NULL);
//把图片选进dc1
dc1.SelectObject(bmp);
dc2.CreateCompatibleDC(NULL);
//把dc1中的图片内容以1:2缩小后放进dc2
if(NULL==TransparentBlt(dc2.m_hDC,0,0,300,200,dc1.m_hDC,0,0,600,400,RGB(0,0,255)))
AfxMessageBox( "缩小图片时失败。 ");
//得到界面上静态文本框控件的指针
CWnd   *pwnd=GetDlgItem(IDC_STATIC);
CDC*   dc3=pwnd-> GetDC();
//把dc1中的部分图片内容显示在界面上,这个没有问题
//dc3-> BitBlt(0,0,300,200,&dc1,0,0,SRCCOPY);
//显示dc2中的图片内容,问题在这里:为何什么也不显示???????????
dc3-> BitBlt(0,0,300,200,&dc2,0,0,SRCCOPY);

------解决方案--------------------
没用过TransparentBlt,但位图的缩放显示可以用StretchBlt直接显示原bmp,用不着修改
------解决方案--------------------
你的dc2当中应该先选入一个兼容位图。
------解决方案--------------------
jf,dc2都没SelectObject怎么能BitBlt呢?还有可以解决你的问题,就是当dc2去CreateCompatibleDC时,指定你最终要的大小那么后来TransparentBlt进去的图片就不会只是部分了.