共用方式為


CDC::StretchBlt

將來源矩形的點陣圖複製到目的地矩形,必要時可延伸或壓縮點陣圖,使其符合目的地矩形的維度。

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

參數

  • x
    指定目的地矩形左上角的 X 座標 (以邏輯單位表示)。

  • y
    指定目的地矩形左上角的 Y 座標 (以邏輯單位表示)。

  • nWidth
    指定目的地矩形的寬度 (以邏輯單位表示)。

  • nHeight
    指定目的地矩形的高度 (以邏輯單位表示)。

  • pSrcDC
    指定來源裝置內容。

  • xSrc
    指定來源矩形左上角的 X 座標 (以邏輯單位表示)。

  • ySrc
    指定來源矩形左上角的 Y 座標 (以邏輯單位表示)。

  • nSrcWidth
    指定來源矩形的寬度 (以邏輯單位表示)。

  • nSrcHeight
    指定來源矩形的高度 (以邏輯單位表示)。

  • dwRop
    指定待執行的點陣作業。 點陣作業程式碼定義 GDI 在輸出作業中結合色彩的方式;該輸出作業與目前的筆刷、可能的來源點陣圖和目的地點陣圖相關。 這個參數可以是下列其中一個值:

    • BLACKNESS   將所有輸出變成黑色。

    • DSTINVERT   反轉目的地點陣圖。

    • MERGECOPY   使用布林值 AND 運算子合併模式和來源點陣圖。

    • MERGEPAINT   使用布林值 OR 運算子合併反轉的來源點陣圖和目的地點陣圖。

    • NOTSRCCOPY   將反轉的來源點陣圖複製到目的地。

    • NOTSRCERASE   反轉使用布林值 OR 運算子合併目的地點陣圖和來源點陣圖的結果。

    • PATCOPY   將模式複製到目的地點陣圖。

    • PATINVERT   使用布林值 XOR 運算子合併目的地點陣圖與模式。

    • PATPAINT   使用布林值 OR 運算子合併反轉的來源點陣圖與模式。 使用布林值 OR 運算子合併此作業的結果與目的地點陣圖。

    • SRCAND   使用布林值 AND 運算子合併目的地點陣圖和來源點陣圖的像素。

    • SRCCOPY   將來源點陣圖複製到目的地點陣圖。

    • SRCERASE   反轉目的地點陣圖並使用布林值 AND 運算子合併結果與來源點陣圖。

    • SRCINVERT   使用布林值 XOR 運算子合併目的地點陣圖和來源點陣圖的像素。

    • SRCPAINT   使用布林值 OR 運算子合併目的地點陣圖和來源點陣圖的像素。

    • WHITENESS   將所有輸出變成白色。

傳回值

如果繪製了點陣圖即為非零,否則為 0。

備註

此函式使用目的地裝置內容 (以 SetStretchBltMode 設定) 的縮放模式判斷如何縮放或壓縮點陣圖。

StretchBlt 函式會將點陣圖從 pSrcDC 指定的來源裝置移到裝置內容物件代表的目的地裝置 (此物件的成員函式會被呼叫)。 xSrc、ySrc、nSrcWidth 和 nSrcHeight 參數定義來源矩形的左上角和維度。 xy、nWidth 和 nHeight 參數指定目的地矩形的左上角和維度。 dwRop 指定的點陣作業定義如何合併來源點陣圖和已在目的地裝置上的位元。

如果 nSrcWidth 和 nWidth 或 nSrcHeight 和 nHeight 參數的符號不同,StretchBlt 函式會建立點陣圖的鏡像。 如果 nSrcWidth and nWidth 的符號不同,函式會沿著 X 軸建立點陣圖的鏡像。 如果 nSrcHeight and nHeight 的符號不同,函式會沿著 Y 軸建立點陣圖的鏡像。

StretchBlt 函式會延伸或壓縮記憶體中的來源點陣圖,然後將結果複製到目的地。 如果要合併模式和結果,除非將延伸的來源點陣圖複製到目的地,否則不會進行合併。 如果使用筆刷,會使用在目的地裝置內容中選取的筆刷。 目的地座標會根據目的地裝置內容而轉換;來源座標會根據來源裝置內容而轉換。

如果目的地、來源和模式點陣圖的色彩格式不同,StretchBlt 會轉換來源和模式點陣圖以符合目的地點陣圖。 轉換中會使用目的地裝置内容的前景和背景色彩。

如果 StretchBlt 必須將單色點陣圖轉換為彩色,會將白色位元 (1) 設為背景色彩,並將黑色位元 (0) 設為前景色彩。 若要將彩色轉換為單色,則會將符合背景色彩的像素轉換成白色 (1),並將其他所有像素設為黑色 (0)。 會使用彩色裝置內容的前景和背景色彩。

並非所有的裝置皆支援 StretchBlt 函式。 若要判斷裝置是否支援 StretchBlt,請使用 RASTERCAPS 索引呼叫 GetDeviceCaps 成員函式並檢查傳回值是否包含 RC_STRETCHBLT 旗標。

需求

標題: afxwin.h

請參閱

參考

CDC 類別

階層架構圖表

CDC::BitBlt

CDC::GetDeviceCaps

CDC::SetStretchBltMode

StretchBlt