问题一:
BOOL CSampleView::OnEraseBkgnd(CDC* pDC)
{//设置brush为希望的背景颜色
CBrush backBrush(RGB(255, 128, 128));//保存旧的brush
CBrush* pOldBrush = pDC->SelectObject(&backBrush);
CRect rect;
pDC->GetClipBox(&rect);//画需要的区域
pDC->PatBlt(rect.left, rect.top, rect.Width(), rect.Height(), PATCOPY);
pDC->SelectObject(pOldBrush);return TRUE;}
上例中,为什么CBrush* pOldBrush = pDC->SelectObject(&backBrush);是保存旧的brush,backBrush是新的brush啊?!而pDC->SelectObject(pOldBrush);又怎么说是释放bursh呢?问题二:
1. FirstDC <-----这个dc是屏幕上的一个dc
2. SecondDC <-----这个dc,我们希望复制FirstDC里的东西,我们这样做:{
CBitmap TmpBitmap;
TmpBitmap.CreateCompatibleBitmap(&FirstDC,dcWidth,dcHeight);
CDC SecondDC;SecondDC.CreateCompatibleDC(&FirstDC);//如果没有这行,画上去的是黑图SecondDC.SelectObject(TmpBitmap);
SecondDC.BitBlt(0,0,dcWidth,dcHeight,&FirstDC,0,0,SRCCOPY);
}
上例中,TmpBitmap.CreateCompatibleBitmap(&FirstDC,dcWidth,dcHeight);为什么需要CreateCompatibleBitmap(),没有这个操作行吗?
BOOL CSampleView::OnEraseBkgnd(CDC* pDC)
{//设置brush为希望的背景颜色
CBrush backBrush(RGB(255, 128, 128));//保存旧的brush
CBrush* pOldBrush = pDC->SelectObject(&backBrush);
CRect rect;
pDC->GetClipBox(&rect);//画需要的区域
pDC->PatBlt(rect.left, rect.top, rect.Width(), rect.Height(), PATCOPY);
pDC->SelectObject(pOldBrush);return TRUE;}
上例中,为什么CBrush* pOldBrush = pDC->SelectObject(&backBrush);是保存旧的brush,backBrush是新的brush啊?!而pDC->SelectObject(pOldBrush);又怎么说是释放bursh呢?问题二:
1. FirstDC <-----这个dc是屏幕上的一个dc
2. SecondDC <-----这个dc,我们希望复制FirstDC里的东西,我们这样做:{
CBitmap TmpBitmap;
TmpBitmap.CreateCompatibleBitmap(&FirstDC,dcWidth,dcHeight);
CDC SecondDC;SecondDC.CreateCompatibleDC(&FirstDC);//如果没有这行,画上去的是黑图SecondDC.SelectObject(TmpBitmap);
SecondDC.BitBlt(0,0,dcWidth,dcHeight,&FirstDC,0,0,SRCCOPY);
}
上例中,TmpBitmap.CreateCompatibleBitmap(&FirstDC,dcWidth,dcHeight);为什么需要CreateCompatibleBitmap(),没有这个操作行吗?
解决方案 »
- vc中怎样判断某个文件是否正在被使用
- 请问,我写一个console application,怎么样实现一个进度提示框,如51%
- 如何让基于对话框我的程序一运行就做某一件事???
- DLL中怎么定义共用变量?
- 求telnet client的源码
- CFileFind为什么列不出网上邻居的共享目录的文件?
- 再次求救!!!
- OCX 控件按钮问题
- 请教,IOCP每个连接一次只投递一个WSARecv会不会效率不高?
- 关于ANSI字符集,Unicode字符集,和_T宏的问题
- 用install shield 打包时,在程序组中建立快睫方式时,图标始终是用VC建立程序的图标,why
- 发什么消息或调用什么函数,使ComboBox控件自动打开。
2.??
然后操作完dc后,把老的brush设置回来。2. CreateCompatibleBitmap 用来创建一个位图。此位图用来存放 FirstDC 上内容的副本。