SetBkColor,SetTextColor具体是作什么操作的呢?读过图片后使用SetBkColor和SetTextColor设置的颜色在哪里呢?使用BitBlt将一个设过SetBkColor和SetTextColor的位图拷贝到一个单色位图或逆拷贝,SetBkColor和SetTextColor设置的颜色起到了什么作用?
//我首先用(ha.bmp为一个红底的人物图):
HDC MemDC = CreateCompatibleDC(0);
HBITMAP bit = bit(HBITMAP)LoadImage(AfxGetInstanceHandle(),"./pic/ha.bmp",
IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);//ha.bmp为一个红底的人物图
SelectObject(MemDC,bit);
//再建一个单色位图:
HBITMAP mBMP = CreateBitmap(w,h,1,1,NULL);
HDC mDC = CreateCompatibleDC(dc.m_hDC);
HBITMAP oldmBMP = (HBITMAP)SelectObject(mDC,mBMP);
//到底是怎么形成一个MemDC(ha.bmp)的掩码位图,即底色为白色,人物为黑色的单色位图.
SetBkColor(hDC,RGB(255,0,0));//起到什么作用?是把透明色(RGB(255,0,0))当成背景,除透明色以外的颜色当成前景色,所设的背景是在hDC读的图片(ha.bmp)之下,还是之上?
//SetTextColor(hDC,RGB(255,255,255);//显示hDC,人物不变,为什么不是白色?
BitBlt(mDC,0,0,w,h,hDC,0,0,SRCCOPY);//为什么mDC形成一个底色为白色,人物为黑色的单色掩码位图,不是形成一个底色为黑色,人物为白色(或黑色)的单色掩码位图
//到底是怎么将MemDC变为以黑色为底的人物(人物不变色)图片.
SetBkColor(MemDC,RGB(0,0,0));//这步有什么作用?
SetTextColor(MemDC,RGB(255,255,255));//这步有什么作用?
BitBlt(MemDC,0,0,w,h,mDC,0,0,SRCAND);//怎么"与"的?将MemDC变为以黑色为底的人物(人物不变色)图片.
//我首先用(ha.bmp为一个红底的人物图):
HDC MemDC = CreateCompatibleDC(0);
HBITMAP bit = bit(HBITMAP)LoadImage(AfxGetInstanceHandle(),"./pic/ha.bmp",
IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);//ha.bmp为一个红底的人物图
SelectObject(MemDC,bit);
//再建一个单色位图:
HBITMAP mBMP = CreateBitmap(w,h,1,1,NULL);
HDC mDC = CreateCompatibleDC(dc.m_hDC);
HBITMAP oldmBMP = (HBITMAP)SelectObject(mDC,mBMP);
//到底是怎么形成一个MemDC(ha.bmp)的掩码位图,即底色为白色,人物为黑色的单色位图.
SetBkColor(hDC,RGB(255,0,0));//起到什么作用?是把透明色(RGB(255,0,0))当成背景,除透明色以外的颜色当成前景色,所设的背景是在hDC读的图片(ha.bmp)之下,还是之上?
//SetTextColor(hDC,RGB(255,255,255);//显示hDC,人物不变,为什么不是白色?
BitBlt(mDC,0,0,w,h,hDC,0,0,SRCCOPY);//为什么mDC形成一个底色为白色,人物为黑色的单色掩码位图,不是形成一个底色为黑色,人物为白色(或黑色)的单色掩码位图
//到底是怎么将MemDC变为以黑色为底的人物(人物不变色)图片.
SetBkColor(MemDC,RGB(0,0,0));//这步有什么作用?
SetTextColor(MemDC,RGB(255,255,255));//这步有什么作用?
BitBlt(MemDC,0,0,w,h,mDC,0,0,SRCAND);//怎么"与"的?将MemDC变为以黑色为底的人物(人物不变色)图片.
SetBkColor是设置显示文字的背景色,而SetTextColor是设置显示文字的前景色,即文字的颜色。
//到底是怎么形成一个MemDC(ha.bmp)的掩码位图,即底色为白色,人物为黑色的单色位图.
设置底色。。不能用setBKcolor这样的函数。需要将bmp都设成白色。
然后贴在缓存上。
给我留言。我给你个游戏编程的例子。
其中用了遮照技术。
看到这种话,真让人流汗。
不知道是谁没有搞清楚。Q://到底是怎么将MemDC变为以黑色为底的人物(人物不变色)图片.
SetBkColor(MemDC,RGB(0,0,0));//这步有什么作用?
A:
这步操作强行将位图设为白色,以方便做透明处理。
谢谢了!
其中的SRCAND表示“与”,你这个地方好像是mDC与MemDC“与”操作。