有关BitBlt函数问题请教
如下两段代码都是想把源中的显示拷贝到Image2去,
为什么代码2实现了所想,面代码1没实现呢?
代码1:
HDC hDC = GetDC(RichEdit1->Handle);
BitBlt(Image2->Canvas->Handle, 0, 0, Image2->Width,
Image2->Height, hDC, 0, 0, SRCCOPY);
ReleaseDC(RichEdit1->Handle, hDC); Image2->Repaint();
代码2:
HDC hDC = GetDC(Image1->Canvas->Handle);
BitBlt(Image2->Canvas->Handle, 0, 0, Image1->Width,
Image1->Height, hDC, 0, 0, SRCCOPY);
ReleaseDC(Image1->Canvas->Handle, hDC);
Image1->Repaint();
问题点数:10、回复次数:4Top
1 楼cfwei(大卫)回复于 2003-07-01 15:00:54 得分 0
sorry,纠正一下,是代码1实现所想,而代码2未实现。Top
2 楼xuv2002(XuWei)回复于 2003-07-01 15:10:39 得分 0
第二段改改
HDC hDC = Image1->Canvas->Handle;
BitBlt(Image2->Canvas->Handle, 0, 0, Image1->Width,
Image1->Height, hDC, 0, 0, SRCCOPY);
Image1->Repaint();
其实HDC 就是Canvas 的句柄Top
3 楼pp616(坏蛋)回复于 2003-07-01 15:24:35 得分 5
BitBlt(Image2->Canvas->Handle, 0, 0, Image1->Width,
Image1->Height, Image1->Canvas->Handle, 0, 0, SRCCOPY);
这一句话就好了。其他的代码都没必要。
Top
4 楼Wingsun(孙春阳)回复于 2003-07-01 16:02:08 得分 5
Repaint把你刚才绘制出去的东西又抹除掉了,当然也就看不到效果了。
Repaint这个函数你要好好理解是做什么。
Top




