// wingdi.h
// 비트맵 생성하기.
HBITMAP WINAPI CreateBitmap(
_In_ int nWidth, // 비트맵의 가로
_In_ int nHeight, // 비트맵의 세로
_In_ UINT nPlanes, //
_In_ UINT nBitCount, // 색상을 표현하는 비트 수. 16, 24, 32.
_In_opt_ CONST VOID *lpBits // 초기 비트 패턴 설정. nWidth * nHeight * nBitCount / 8.
);
// 화면의 색상 수를 얻음. 프로그램의 호환성을 위함.
int colorDepth = ::GetDeviceCaps(DeviceContext, BITSPIXEL);
// 폭 64, 높이 64, 현재 그래픽 장치의 색상 수를 사용하는 비트맵 생성.
HBITMAP h_bmp = CreateBitmap(64, 64, 1, colorDepth, NULL);
// 비트맵 제거
BOOL DeleteObject(h_bmp);
// 현재 DC(DeviceContext)에 설정된 값을 기준으로 비트맵을 생성.
HBITMAP WINAPI CreateCompatibleBitmap(
_In_ HDC hdc, // 전달된 DC
_In_ int cx, // 폭
_In_ int cy // 높이
);
// 폭 64, 높이 64, 현재 그래픽 장치의 속성과 호환되는 비트맵 생성.
HBITMAP h_bmp = CreateCompatibleBitmap(hdc, 64, 64); // NULL도 가능함.
// 비트맵 제거
BOOL DeleteObject(h_bmp);
// 비트맵 구조체
typedef struct tagBITMAP
{
LONG bmType; // 비트맵 형식을 명시. 항상 '0'을 대입.
LONG bmWidth; // 폭(pixel)
LONG bmHeight; // 높이(pixel)
LONG bmWidthBytes; // 가로 방향으로 한 줄에 사용되는 바이트 수.
WORD bmPlanes; // 색상을 표현하기 위한 플랜의 수. 대부분 '1'을 사용.
WORD bmBitsPixel; // 한 점을 표현하는데 사용되는 색상의 크기를 비트 수. 32비트는 32.
LPVOID bmBits; // 비트맵의 이미지 패턴이 저장되어 있는 메모리의 시작 주소.
} BITMAP, *PBITMAP, NEAR *NPBITMAP, FAR *LPBITMAP;
|
cs |
'::public > 윈도우즈 응용 프로그래밍' 카테고리의 다른 글
윈도우 좌표 구성 (0) | 2019.09.23 |
---|---|
GDI(Graphics Device Interface) (0) | 2019.09.23 |
Windows API (0) | 2019.09.23 |
기본 소스 코드 구성(생략본) (0) | 2019.09.23 |
Window Class (0) | 2019.09.22 |