memDC.CreateCompatibleDC(&dc);
CBitmap bmpFrom, bmpTo;
bmpFrom.CreateCompatibleBitmap(&dc, rc1.Width(), rc1.Height() + frc.Height() * 2);
bmpTo.CreateCompatibleBitmap(&dc, rc1.Width(), rc1.Height() + frc.Height() * 2);
CDC * pDC = &memDC;
//创建位图设备上下文
CWnd * pWnd1 = GetFolderChild(iFrom);
CWnd * pWnd2 = GetFolderChild(iTo);
//取得当前连接子窗口
CBitmap * obmp = pDC->SelectObject(&bmpFrom);
//取得位图设备描述表
if (iTo > iFrom)
{
rc1.bottom += frc.Height() * 2;
//////////////////////////////////////////////////////////////////////
pDC->FillSolidRect(rc1, crBackGroundColor);
///////////////////////////////////////////////////////////////////////
//用背景色刷新位图
if (pWnd1)
{//刷新树形窗口
BOOL bPrev = pWnd1->ShowWindow(SW_SHOW);
pWnd1->SendMessage(WM_ERASEBKGND, (WPARAM) pDC->GetSafeHdc(), (LPARAM) 0);
pWnd1->SendMessage(WM_PAINT, (WPARAM) pDC->GetSafeHdc(), (LPARAM) 0);
if (!bPrev) pWnd1->ShowWindow(SW_HIDE);
}//刷新图象列表
else PaintItems(pDC, iFrom, rc1);
///////////////////////////////////////////////////////////////////////
我的问题:
pDC->FillSolidRect(rc1, crBackGroundColor);这条语句的作用是什么???
(1)在内存装载 REC1 面积大小的位图
(2)在内存位图装载 REC1 位置的位图???
希望大家能够帮我结实清楚牙!!!
/
6 个解决方案
#1
我急牙!!
#2
你说的很对呀,就是用背景色填充你的位图区域吧。
#3
Call this member function to fill the given rectangle with the specified solid color.
FillSolidRect is very similar to CDC::FillRect; however, FillSolidRect uses only solid colors (indicated by the COLORREF parameter), while FillRect takes a brush and therefore can be used to fill a rectangle with a solid color, a dithered color, hatched brushes, or a pattern. FillSolidRect usually is faster than FillRect.
就是用crBackGroundColor填充矩形rc1
FillSolidRect is very similar to CDC::FillRect; however, FillSolidRect uses only solid colors (indicated by the COLORREF parameter), while FillRect takes a brush and therefore can be used to fill a rectangle with a solid color, a dithered color, hatched brushes, or a pattern. FillSolidRect usually is faster than FillRect.
就是用crBackGroundColor填充矩形rc1
#4
这个问题是当填充以后,内存设备要装载预定义的位图,位图是怎么装载呀???
究竟是装载呀!!!(1)是把刷新的屏幕装入RC1大小的地方!!!!
(2)还是将窗口对应RC1位置的刷新的内容装入位图!!!
我弄不明白呀!!!!
究竟是装载呀!!!(1)是把刷新的屏幕装入RC1大小的地方!!!!
(2)还是将窗口对应RC1位置的刷新的内容装入位图!!!
我弄不明白呀!!!!
#5
就是刷新的 内容怎么装入位图呀????
#6
对了!!!
接下来是下面几条语句:
这几条语句:
CRgn itemRegion
itemRegion.CreateRectRgnIndirect(&RC1)
pDC->SelectClipRgn(&itemRegion)
itemRegion.DeleteObject()
.....调用GDI资源画图.......
..................
现在的问题比较清晰了!!!!
前面的语句是在内存设备中预定义一个RC1大小的位图
然后是创建一个剪裁区
最后是画图
问题:
(1)位图是怎样在内存设备中装载: 究竟是刷新区域的位图装载一个RC1大小的位图还是把窗口中对应RC1坐标位置的位图装入内存设备。
(2)关于创建剪裁区的那四条语句的用法详细解释一下!!!
接下来是下面几条语句:
这几条语句:
CRgn itemRegion
itemRegion.CreateRectRgnIndirect(&RC1)
pDC->SelectClipRgn(&itemRegion)
itemRegion.DeleteObject()
.....调用GDI资源画图.......
..................
现在的问题比较清晰了!!!!
前面的语句是在内存设备中预定义一个RC1大小的位图
然后是创建一个剪裁区
最后是画图
问题:
(1)位图是怎样在内存设备中装载: 究竟是刷新区域的位图装载一个RC1大小的位图还是把窗口中对应RC1坐标位置的位图装入内存设备。
(2)关于创建剪裁区的那四条语句的用法详细解释一下!!!
#1
我急牙!!
#2
你说的很对呀,就是用背景色填充你的位图区域吧。
#3
Call this member function to fill the given rectangle with the specified solid color.
FillSolidRect is very similar to CDC::FillRect; however, FillSolidRect uses only solid colors (indicated by the COLORREF parameter), while FillRect takes a brush and therefore can be used to fill a rectangle with a solid color, a dithered color, hatched brushes, or a pattern. FillSolidRect usually is faster than FillRect.
就是用crBackGroundColor填充矩形rc1
FillSolidRect is very similar to CDC::FillRect; however, FillSolidRect uses only solid colors (indicated by the COLORREF parameter), while FillRect takes a brush and therefore can be used to fill a rectangle with a solid color, a dithered color, hatched brushes, or a pattern. FillSolidRect usually is faster than FillRect.
就是用crBackGroundColor填充矩形rc1
#4
这个问题是当填充以后,内存设备要装载预定义的位图,位图是怎么装载呀???
究竟是装载呀!!!(1)是把刷新的屏幕装入RC1大小的地方!!!!
(2)还是将窗口对应RC1位置的刷新的内容装入位图!!!
我弄不明白呀!!!!
究竟是装载呀!!!(1)是把刷新的屏幕装入RC1大小的地方!!!!
(2)还是将窗口对应RC1位置的刷新的内容装入位图!!!
我弄不明白呀!!!!
#5
就是刷新的 内容怎么装入位图呀????
#6
对了!!!
接下来是下面几条语句:
这几条语句:
CRgn itemRegion
itemRegion.CreateRectRgnIndirect(&RC1)
pDC->SelectClipRgn(&itemRegion)
itemRegion.DeleteObject()
.....调用GDI资源画图.......
..................
现在的问题比较清晰了!!!!
前面的语句是在内存设备中预定义一个RC1大小的位图
然后是创建一个剪裁区
最后是画图
问题:
(1)位图是怎样在内存设备中装载: 究竟是刷新区域的位图装载一个RC1大小的位图还是把窗口中对应RC1坐标位置的位图装入内存设备。
(2)关于创建剪裁区的那四条语句的用法详细解释一下!!!
接下来是下面几条语句:
这几条语句:
CRgn itemRegion
itemRegion.CreateRectRgnIndirect(&RC1)
pDC->SelectClipRgn(&itemRegion)
itemRegion.DeleteObject()
.....调用GDI资源画图.......
..................
现在的问题比较清晰了!!!!
前面的语句是在内存设备中预定义一个RC1大小的位图
然后是创建一个剪裁区
最后是画图
问题:
(1)位图是怎样在内存设备中装载: 究竟是刷新区域的位图装载一个RC1大小的位图还是把窗口中对应RC1坐标位置的位图装入内存设备。
(2)关于创建剪裁区的那四条语句的用法详细解释一下!!!