我的家園

          我的家園


           

          BitBlt

          該函數(shù)對指定的源設(shè)備環(huán)境區(qū)域中的像素進行位塊(bit_block)轉(zhuǎn)換,以傳送到目標設(shè)備環(huán)境。

          原型:   

          BOOL BitBlt(

              HDC  hdcDest,

              int  nXDest,  int  nYDest,  int  nWidth,  int  nHeight,

              HDC  hdcSrc,

              int  nXSrc,  int  nYSrc,

              DWORD  dwRop);

          參數(shù):    

          hdcDest:指向目標設(shè)備環(huán)境的句柄。

          nXDest、nYDest:指定目標矩形區(qū)域左上角的X軸和Y軸邏輯坐標

          nWidth、nHeight:指定源和目標矩形區(qū)域的邏輯寬度和邏輯高度。

          hdcSrc:指向源設(shè)備環(huán)境的句柄。

          nXSrc、nYSrc:指定源矩形區(qū)域左上角的X軸和Y軸邏輯坐標。

          dwRop:指定光柵操作代碼。這些代碼將定義源矩形區(qū)域的顏色數(shù)據(jù),如何與目標矩形區(qū)域的顏色數(shù)據(jù)組合以完成最后的顏色。下面列出了一些常見的光柵操作代碼:

           

          描述

          BLACKNESS

          表示使用與物理調(diào)色板的索引0相關(guān)的色彩來填充目標矩形區(qū)域,(對缺省的物理調(diào)色板而言,該顏色為黑色)。

          DSTINVERT

          表示使目標矩形區(qū)域顏色取反。

          MERGECOPY 

          表示使用布爾型AND(與)操作符將源矩形區(qū)域的顏色與特定模式組合一起。

          MERGEPAINT

          通過使用布爾型OR(或)操作符將源矩形區(qū)域的顏色取反后與目標矩形區(qū)域的顏色合并。

          NOTSRCCOPY

          將源矩形區(qū)域顏色取反,拷貝到目標矩形區(qū)域。

          NOTSRCERASE

          使用布爾類型的OR(或)操作符組合源和目標矩形區(qū)域的顏色值,然后將合成的顏色取反。

          PATCOPY

          將特定的模式拷貝到目標位圖上。

          PATINVERT

          通過使用布爾型XOR(異或)操作符將源和目標矩形區(qū)域內(nèi)的顏色合并。

          PATPAINT

          通過使用布爾型OR(或)操作符將源矩形區(qū)域取反后的顏色值與特定模式的顏色合并。然后使用OR(或)操作符將該操作的結(jié)果與目標矩形區(qū)域內(nèi)的顏色合并。

          SRCAND

          通過使用布爾型AND(與)操作符來將源和目標矩形區(qū)域內(nèi)的顏色合并。

          SRCCOPY

          將源矩形區(qū)域直接拷貝到目標矩形區(qū)域。

          SRCERASE

          通過使用布爾型AND(與)操作符將目標矩形區(qū)域顏色取反后與源矩形區(qū)域的顏色值合并。

          SRCINVERT

          通過使用布爾型XOR(異或)操作符將源和目標矩形區(qū)域的顏色合并。

          SRCPAINT

          通過使用布爾型OR(或)操作符將源和目標矩形區(qū)域的顏色合并。

          WHITENESS

          使用與物理調(diào)色板中索引1有關(guān)的顏色填充目標矩形區(qū)域。(對于缺省物理調(diào)色板來說,這個顏色就是白色)。

           

            完整的光柵操作(ROP)碼,參見 Ternary Raster Operations.

           

          返回值:

             如果函數(shù)成功,那么返回值非零;如果函數(shù)失敗,則返回值為零。調(diào)用GetLastError函數(shù)獲取擴展錯誤信息。

          說明:

             如果在源設(shè)備環(huán)境中可以實行旋轉(zhuǎn)或剪切變換,那么函數(shù)BitBlt返回一個錯誤。

             如果存在其他變換(并且目標設(shè)備環(huán)境中匹配變換無效),那么目標設(shè)備環(huán)境中的矩形區(qū)域?qū)⒃谛枰獣r進行拉伸、壓縮或旋轉(zhuǎn)。

             如果源和目標設(shè)備環(huán)境的顏色格式不匹配,那么BitBlt函數(shù)將源場景的顏色格式轉(zhuǎn)換成能與目標格式匹配的格式。

             當正在記錄一個增強型圖元文件時,如果源設(shè)備環(huán)境標識為一個增強型圖元文件設(shè)備環(huán)境,那么會出現(xiàn)錯誤。

             并不是所有的設(shè)備都支持BitBlt函數(shù)。更多信息,調(diào)用GetDeviceCaps 函數(shù),將第二個參數(shù)賦值為RC_BITBLT來查看設(shè)備是否支持。(For more information, see the RC_BITBLT raster capability entry in the GetDeviceCaps function, as well as the MaskBlt and StretchBlt functions. )

             如果源和目標設(shè)備環(huán)境代表不同的設(shè)備,那么BitBlt函數(shù)返回錯誤。

             更多關(guān)于從右到左向位塊傳輸顯示信息(For information about blitting to displays with right-to-left orientations),參見 Creating Bitmaps。 

             在Windows CE 1.0和1.01版中,參數(shù)dwRop只可以指定為下列值:SRCCOPY、SRCAND、SRCPAINT、SRCINVERT。在Windows CE 2.0及以后版中,參數(shù)dwRop可以是任何ROP3代碼值。 

           

          下面是MSDN上的例子:

          HBITMAP CopyBitmap( HBITMAP hbm) {
              HDC hdcSrc = CreateCompatibleDC(NULL);
              HDC hdcDst = CreateCompatibleDC(NULL);
              HBITMAP hbmOld, hbmOld2, hbmNew;
              BITMAP bm;
              GetObject(hbm, sizeof(bm), &bm);
              hbmOld = SelectObject(hdcSrc, hbm);
              hbmNew = CreateBitmap( bm.bmWidth, bm.bmHeight, bm.bmPlanes,
                  bm.bmBitsPixel,
                  NULL);
              hbmOld2 = SelectObject(hdcDst, hbmNew);
              BitBlt(hdcDst, 0, 0, bm.bmWidth, bm.bmHeight, hdcSrc, 0, 0, SRCCOPY);
              SelectObject(hdcSrc, hbmOld);
              SelectObject(hdcDst, hbmOld2);
              DeleteDC(hdcSrc);
              DeleteDC(hdcDst);
              return hbmNew;


          本文章部分轉(zhuǎn)自  http://blog.csdn.net/z0203153008/article/details/5937571
          作者:zhmxy555 發(fā)表于2012-4-10 18:11:38 原文鏈接
          閱讀:197 評論:0 查看評論

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 潢川县| 津南区| 杨浦区| 湖南省| 铁岭市| 巍山| 全州县| 长葛市| 商洛市| 普陀区| 电白县| 通渭县| 民乐县| 昌吉市| 鲜城| 凤台县| 吉安市| 高碑店市| 磴口县| 镶黄旗| 合水县| 秀山| 云南省| 新宁县| 长子县| 紫阳县| 六安市| 海原县| 淮南市| 越西县| 衡水市| 潮安县| 安康市| 神池县| 林州市| 咸阳市| 和顺县| 溧阳市| 横峰县| 建始县| 通江县|