BitBlt函数用法

(一)

BOOL BitBlt( int x, int y, int nWidth, int nHeight, CDC* pSrcDC, int xSrc, int ySrc, DWORD dwRop );

前往值:效能成,前往非零值,另外,它是0。

决定因素: x 任命物镜记载左上角的逻辑X使调和。

y 任命物镜记载左上角的逻辑y使调和。

nWidth 任命物镜矩形和源位图(逻辑单元)的宽度。。

nHeight 任命物镜矩形和源位图的高处(逻辑单元)。

pSrcDC 指路CDC男朋友的指导,稳固镶嵌验明挂起位图。假设dwRop任命以前的男朋友或女朋友源的形成图案巧妙地控制,这么它必需是空的。。

xSrc 任命源位图左上角的逻辑X使调和。

ySrc 任命源位图左上角的逻辑y使调和。

dwRop 任命要实现的形成图案巧妙地控制。形成图案巧妙地控制编码界限了GDC方式结成出口巧妙地控制正中鹄的色。,包罗喂轻触、能够的源位图和物镜位图。

在DWROP旁边的,列出形成图案巧妙地控制编码及其代理:

BLACKNESS 整个出口变黑。

DSTINVERT 反向物镜位图。

合再现 应用乔治英国数学家和逻辑学家和巧妙地控制相干性和特点和源位图。

MERGEPAINT 应用乔治英国数学家和逻辑学家或巧妙地控制相干性和特点和源位图。

NOTSRCCOPY 将推翻源位图再现到物镜。

NOTSRCERASE 困惑乔治英国数学家和逻辑学家或运算以婚配源和物镜B的产物。

PATCOPY 再现特点到物镜位图。

PATINVERT 应用乔治英国数学家和逻辑学家XOR巧妙地控制来婚配和外景位图和特点。

涂漆 应用乔治英国数学家和逻辑学家或巧妙地控制来婚配和反向源位图和特点。应用乔治英国数学家和逻辑学家运算或运算婚配该OPE的产物和物镜位图。

SRCAND 应用乔治英国数学家和逻辑学家和巧妙地控制来婚配和物镜像素和源位图。

SRCCOPY 将源位图再现到物镜位图。

SRCERASE 反向物镜位图联合体乔治英国数学家和逻辑学家AND巧妙地控制适合这产物和源位图。

SRCINVERT 应用乔治英国数学家和逻辑学家XOR巧妙地控制来婚配和物镜像素和源位图。

SRCPAINT 应用乔治英国数学家和逻辑学家OR巧妙地控制适合物镜像素和源位图。

WHITENESS 全出口使褪色。

使整合的形成图案巧妙地控制编码列表,请参阅在线证件Win32 SDK程序员请教补遗正中鹄的形成图案巧妙地控制编码。

阐明:

从源稳固镶嵌再现位图到喂稳固镶嵌。

请求可以在八位字节边界附近的上外国的窗口或客户端区域。,担保BitBlt巧妙地控制发作在以八位字节外国的的矩形上(记录窗口类时设置稳固CS_BYTEALLGNWINDOW或CS_BYTEALIGHCLIENT警察)。

在八位字节外国的矩形上的BitBlt巧妙地控制比未必八位字节外国的的矩形上的BitBlt巧妙地控制快诸多。免得要为稳固镶嵌任命八位字节外国的组织,您必需记录窗口类,而不是依赖于微软的根底。。可以应用大局功能AfxRegisterWndClass。

一旦应用物镜稳固镶嵌,而且应用源稳固镶嵌,GDI失真宽度和高处。免得产物不婚配,免得必要,GDI应用Windows StudiBLT功能紧缩或绘制源位图。

免得物镜是、源位图和特点位图的色体式明显的。,BitBlt替换源和特点位图以婚配物镜。在替换中应用的物镜位图的远景和镶嵌色。

BitBlt功能把单色画位图替换为使脸红时,它设置纯洁(1)作为镶嵌色。,黑色(0)作为前面视域。应用物镜稳固镶嵌和远景的镶嵌。将色替换成单色画,BitBlt把与镶嵌色婚配的像素设置为纯洁,等等的人或物的像素设置为黑色。。从色到单色画的替换,BitBlt应用使脸红稳固镶嵌的远景和镶嵌色。

注意,并非所相当稳固镶嵌都维持BitBlt。为反省预先决定稳固镶嵌条件维持BitBlt,应用GETDeVICECAPS身体部位功能并任命RASTCAPS参考。。

网友恢复 CDC::BitBlt

里面的的MFC,GDI第稍微钟物镜是DC,里面的的MFC物镜DC是….p,譬如,(P) bitblt(…))

网友恢复 pDC-> BitBlt(0, 0, rect.right, rect.bottom, &dc, 0, 0, SRCCOPY);

总而言之,应用的决定因素不多。,这对这些很重要。你自己看一眼。

网友恢复 让咱们举个实例。:

void CDianChangView::OnDraw(CDC* PDC)

{

CDianChangDoc* pDoc = GetDocument();

ASSERT_VALID(pDoc);

显示欢送边线

CBitmap bitmap;

(IDB_BITMAP_PIC);

BITMAP bmp;

BMP)

CDC pCompatableDC;

(PDC);

位图)

克利特岛 rect;

GETCclitReCt(& RcT);/ /选择画区域

pDC-> StretchBlt(0,0,(),(),

&pCompatableDC,0,0,bmp.bmWidth,

bmp.bmHeight,SRCCOPY);

}

例二:

void MyBoMex::Stand(int) x,int y)
{
xpos=x;
ypos=y;
SelectObject(hdcsrc,HBM)
BitBlt(hdcdest,xpos,ypos,width,height,hdcsrc,0,0,SRCCOPY); 
}

void MYBITMAP::ShowCenter(int y)
{
xpos=(screenwidth-width)/2;
ypos=y;

 SelectObject(hdcsrc,HBM)
BitBlt(hdcdest,xpos,ypos,width,height,hdcsrc,0,0,SRCCOPY); 
}

void MYBITMAP::ShowLoop(int left,int top,int right,int bottom,int iframe)
{
int i,j;

 SelectObject(hdcsrc,HBM)
(j=顶部;j){
为(i=左;I){
BitBlt(hdcdest,i,j,width,height,hdcsrc,iframe*width,0,SRCCOPY); 
}
//  BitBlt(hdcdest,,i,j,width,height,hdcsrc,iframe*width,0,SRCCOPY);
}
}

void MYBITMAP::ShowNoBack(int x,int y,int iFrame)
{
xpos=x;
ypos=y;
SelectObject(hdcsrc,HBM)
BitBlt(hdcdest,xpos,ypos,width,height/2,hdcsrc,iFrame*width,height/2,SRCand)
BitBlt(hdcdest,xpos,ypos,width,height/2,hdcsrc,iFrame*width,0,SRCPAINT);  
}

(二)

在VC中显示位图经用取BitBlt()方式,它将位图从稍微钟稳固一场再现到另稍微钟稳固一场。。源头与物镜DC必需相辅而行。
喂,若干位图显示在窗口中。,因而我学到了稍微。
我先前导入了我以为导入进行控告资源的位图。,因而我可以用它:
CBitmap cbmp;
(IDB_BMP1);
因而你记录了稍微钟位图男朋友。
和:
BITMAP bitmap;
位图)
因而你记录稍微钟位图男朋友,发生因果关系是咱们可以记录这男朋友,由于咱们可以记录上浆创纪录的O。
和计算记录要在什么名列前茅显示此位图(可以放在稍微钟克利特岛 男朋友;。

和显示位图。,这是最重要的一步。:
CDC dcMemory;
(PDC);
hOldBitmap = CBMP)
pDC->BitBlt(rect.left,
rect.top,
bitmap.bmWidth,
bitmap.bmHeight,
&dcMemory,
0,0,
SRCCOPY);
PDC是稍微钟呕吐保卫控制中心,是稳固周围来显示位图吗?。

因而位图先前显示暴露了。,但咱们必需发表资源。:
();
(hOldBitmap);
();
当选,在初始位图中选择暂时稳固周围,另外,将无法立刻发行物。!!

总结:
在稳固周围中显示位图,你不克不及指导画它。,您必要发觉稍微钟与之能共处的的新稳固周围,和SEL,和重新的稳固周围再现位图以显示立刻的。而选入这举措相当与先前将位图“画在了暂时稳固周围中”(事实上并没画,另外,你可以指导选择CDC来绘制图片。,而且在暂时稳固周围正中鹄的名列前茅位图的名列前茅是T

BitBlt怎地替换稍微钟单色画位图到使脸红位图,方式将使脸红位图替换成单色画位图?

 When   the   BitBlt   function   converts   a   monochrome   bitmap   to   color,   it   sets   white   bits   (1)   to   the   background   color   and   black   bits   (0)   to   the   foreground   color.   The   foreground
  and   background   colors   of   the   destination   device   context   are   应用。   To   convert   color   to   monochrome,   BitBlt   sets   pixels   that   match   the   background   color   to   white   and   sets   all   other   pixels   to   黑色。
  BitBlt   uses   the   foreground   and   background   colors   of   the   color   device   context   to   convert   from   color   to   单色画的   
在BitBlt的时辰,单色画位图设置为1镶嵌色。,远景0,在将使脸红位图替换为单色画位图的同时,BitBlt设置与镶嵌色两者都的象素为纯洁,而如此等等的色为黑色.BitBlt用镶嵌色和远景致来处置单色画位图与使脸红位图间的成绩.(
CDC::BitBlt的阐明上,作为API的BLTIT,文档上没如此的的解说。

发表评论

电子邮件地址不会被公开。 必填项已用*标注