<menu id="w8yyk"><menu id="w8yyk"></menu></menu>
  • <dd id="w8yyk"><nav id="w8yyk"></nav></dd>
    <menu id="w8yyk"></menu>
    <menu id="w8yyk"><code id="w8yyk"></code></menu>
    <menu id="w8yyk"></menu>
    <xmp id="w8yyk">
    <xmp id="w8yyk"><nav id="w8yyk"></nav>
  • 網站首頁 > 物聯資訊 > 技術分享

    【Visual C++】繪圖函數BitBlt的使用方法

    2016-09-28 00:00:00 廣州睿豐德信息科技有限公司 閱讀
    睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接

    BitBlt

    該函數對指定的源設備環境區域中的像素進行位塊(bit_block)轉換,以傳送到目標設備環境。

    原型:   

    BOOL BitBlt(

        HDC  hdcDest,

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

        HDC  hdcSrc,

        int  nXSrc,  int  nYSrc,

        DWORD  dwRop);

    參數:    

    hdcDest:指向目標設備環境的句柄。

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

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

    hdcSrc:指向源設備環境的句柄。

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

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

     

    描述

    BLACKNESS

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

    DSTINVERT

    表示使目標矩形區域顏色取反。

    MERGECOPY 

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

    MERGEPAINT

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

    NOTSRCCOPY

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

    NOTSRCERASE

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

    PATCOPY

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

    PATINVERT

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

    PATPAINT

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

    SRCAND

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

    SRCCOPY

    將源矩形區域直接拷貝到目標矩形區域。

    SRCERASE

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

    SRCINVERT

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

    SRCPAINT

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

    WHITENESS

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

     

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

     

    返回值:

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

    說明:

       如果在源設備環境中可以實行旋轉或剪切變換,那么函數BitBlt返回一個錯誤。

       如果存在其他變換(并且目標設備環境中匹配變換無效),那么目標設備環境中的矩形區域將在需要時進行拉伸、壓縮或旋轉。

       如果源和目標設備環境的顏色格式不匹配,那么BitBlt函數將源場景的顏色格式轉換成能與目標格式匹配的格式。

       當正在記錄一個增強型圖元文件時,如果源設備環境標識為一個增強型圖元文件設備環境,那么會出現錯誤。

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

       如果源和目標設備環境代表不同的設備,那么BitBlt函數返回錯誤。

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

       在Windows CE 1.0和1.01版中,參數dwRop只可以指定為下列值:SRCCOPY、SRCAND、SRCPAINT、SRCINVERT。在Windows CE 2.0及以后版中,參數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;
    RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成
    最近免费观看高清韩国日本大全