BOOL StretchBlt( HDC hdcDest, int nXOriginDest , int nYOriginDest , int nWidthDest , int nHeightDest , HDC hdcSrc , int nXOriginSrc , int nYOriginSrc , int nWidthSrc , int nHeightSrc, DWORD dwRop );hdcDest はコピー先のデバイスコンテキストのハンドルを
#include <windows.h>
LRESULT CALLBACK WndProc(HWND hwnd , UINT msg , WPARAM wp , LPARAM lp) {
	HDC hdc;
	PAINTSTRUCT ps;
	RECT rect;
	switch (msg) {
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	case WM_PAINT:
		GetClientRect(hwnd , &rect);
		hdc = BeginPaint(hwnd , &ps);
		DrawIcon(hdc , 0 , 0 , LoadIcon(NULL , IDI_WINLOGO));
		SetStretchBltMode(hdc , COLORONCOLOR);
		StretchBlt(
			hdc , 0 , 0 , rect.right , rect.bottom ,
			hdc , 0 , 0 , 32 , 32 , SRCCOPY
		);
		EndPaint(hwnd , &ps);
		return 0;
	}
	return DefWindowProc(hwnd , msg , wp , lp);
}
int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance ,
			PSTR lpCmdLine , int nCmdShow ) {
	HWND hwnd;
	MSG msg;
	WNDCLASS winc;
	winc.style		= CS_HREDRAW | CS_VREDRAW;
	winc.lpfnWndProc	= WndProc;
	winc.cbClsExtra	= winc.cbWndExtra	= 0;
	winc.hInstance		= hInstance;
	winc.hIcon		= LoadIcon(NULL , IDI_APPLICATION);
	winc.hCursor		= LoadCursor(NULL , IDC_ARROW);
	winc.hbrBackground	= (HBRUSH)GetStockObject(WHITE_BRUSH);
	winc.lpszMenuName	= NULL;
	winc.lpszClassName	= TEXT("KITTY");
	if (!RegisterClass(&winc)) return -1;
	hwnd = CreateWindow(
			TEXT("KITTY") , TEXT("Kitty on your lap") ,
			WS_OVERLAPPEDWINDOW | WS_VISIBLE ,
			CW_USEDEFAULT , CW_USEDEFAULT ,
			CW_USEDEFAULT , CW_USEDEFAULT ,
			NULL , NULL ,
			hInstance , NULL
	);
	if (hwnd == NULL) return -1;
	while(GetMessage(&msg , NULL , 0 , 0)) {
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}
	return msg.wParam;
}

#include <windows.h>
LRESULT CALLBACK WndProc(HWND hwnd , UINT msg , WPARAM wp , LPARAM lp) {
	HDC hdc;
	PAINTSTRUCT ps;
	RECT rect;
	switch (msg) {
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	case WM_PAINT:
		GetClientRect(hwnd , &rect);
		hdc = BeginPaint(hwnd , &ps);
		DrawIcon(hdc , 0 , 0 , LoadIcon(NULL , IDI_WINLOGO));
		StretchBlt(
			hdc , rect.right , rect.bottom ,
			-rect.right , -rect.bottom ,
			hdc , 0 , 0 , 32 , 32 , SRCCOPY
		);
		EndPaint(hwnd , &ps);
		return 0;
	}
	return DefWindowProc(hwnd , msg , wp , lp);
}
int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance ,
			PSTR lpCmdLine , int nCmdShow ) {
	HWND hwnd;
	MSG msg;
	WNDCLASS winc;
	winc.style		= CS_HREDRAW | CS_VREDRAW;
	winc.lpfnWndProc	= WndProc;
	winc.cbClsExtra	= winc.cbWndExtra	= 0;
	winc.hInstance		= hInstance;
	winc.hIcon		= LoadIcon(NULL , IDI_APPLICATION);
	winc.hCursor		= LoadCursor(NULL , IDC_ARROW);
	winc.hbrBackground	= (HBRUSH)GetStockObject(WHITE_BRUSH);
	winc.lpszMenuName	= NULL;
	winc.lpszClassName	= TEXT("KITTY");
	if (!RegisterClass(&winc)) return -1;
	hwnd = CreateWindow(
			TEXT("KITTY") , TEXT("Kitty on your lap") ,
			WS_OVERLAPPEDWINDOW | WS_VISIBLE ,
			CW_USEDEFAULT , CW_USEDEFAULT ,
			CW_USEDEFAULT , CW_USEDEFAULT ,
			NULL , NULL ,
			hInstance , NULL
	);
	if (hwnd == NULL) return -1;
	while(GetMessage(&msg , NULL , 0 , 0)) {
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}
	return msg.wParam;
}

BOOL StretchBlt( HDC hdcDest, int nXOriginDest , int nYOriginDest , int nWidthDest , int nHeightDest , HDC hdcSrc , int nXOriginSrc , int nYOriginSrc , int nWidthSrc , int nHeightSrc, DWORD dwRop );コピー元の長方形からコピー先の長方形にビットマップをコピーします
| 定数 | 解説 | 
|---|---|
| BLACKONWHITE | 残す点の色と、取り除く点の色を、論理 AND 演算子で結合します ビットマップがモノクロビットマップの場合 白のピクセルが消され、黒のピクセルが残ります | 
| COLORONCOLOR | ピクセルを削除します 取り除く点の情報を保存することなく、削除します | 
| HALFTONE | コピー元のピクセルをコピー先のピクセルブロックに対応づけます コピー先のブロックの平均的な色が、コピー元のピクセルの色に近い色になります HALFTONEモードを設定した場合は、ブラシのずれを防ぐため SetBrushOrgEx() 関数を呼び出してください | 
| STRETCH_ANDSCANS | BLACKONWHITE と同じです | 
| STRETCH_DELETESCANS | COLORONCOLOR と同じです | 
| STRETCH_HALFTONE | HALFTONE と同じです | 
| STRETCH_ORSCANS | WHITEONBLACK と同じです | 
| WHITEONBLACK | 残す点の色と、取り除く点の色を、論理 OR 演算子で結合します ビットマップがモノクロビットマップの場合 黒のピクセルが消され、白のピクセルが残ります |