StockObject
자원 중에서 내용이나 속성이 바뀌지 않으면서 주로 사용되는 자원들이 많은데 응용프로그램의 요청시마다 운영체제가 자원을 구성해서 전달하는것은 비효율 적입니다.
운영체제에서 사용빈도가 높고 내용이 바뀌지 않는 자원들을 미리 만들어서
가지고 있는데 이를 Stock Object라고 정의합니다.
1. GetStockObject
https://learn.microsoft.com/ko-kr/windows/win32/api/wingdi/nf-wingdi-getstockobject
GetStockObject 함수(wingdi.h) - Win32 apps
GetStockObject 함수는 스톡 펜, 브러시, 글꼴 또는 팔레트 중 하나에 대한 핸들을 검색합니다.
learn.microsoft.com
HGDIOBJ GetStockObject(
[in] int i
);
BLACK_BRUSH | 검은색 브러시. |
DKGRAY_BRUSH | 진한 회색 브러시. |
DC_BRUSH | 단색 브러시입니다. 기본 색은 흰색입니다. SetDCBrushColor 함수를 사용하여 색을 변경할 수 있습니다. 자세한 내용은 주의 섹션을 참조하세요. |
GRAY_BRUSH | 회색 브러시. |
HOLLOW_BRUSH | 속이 빈 브러시(NULL_BRUSH 해당) |
LTGRAY_BRUSH | 연한 회색 브러시. |
NULL_BRUSH | Null 브러시(HOLLOW_BRUSH 해당) |
WHITE_BRUSH | 흰색 브러시. |
BLACK_PEN | 검은색 펜. |
DC_PEN | 단색 펜 색입니다. 기본 색은 검은색입니다. SetDCPenColor 함수를 사용하여 색을 변경할 수 있습니다. 자세한 내용은 주의 섹션을 참조하세요. |
NULL_PEN | Null 펜입니다. null 펜은 아무 것도 그리지 않습니다. |
WHITE_PEN | 흰색 펜. |
ANSI_FIXED_FONT | Windows 고정 피치(모노스페이스) 시스템 글꼴입니다. |
ANSI_VAR_FONT | Windows 가변 피치(비례 공간) 시스템 글꼴입니다. |
DEVICE_DEFAULT_FONT | 디바이스 종속 글꼴입니다. |
DEFAULT_GUI_FONT | 메뉴 및 대화 상자와 같은 사용자 인터페이스 개체의 기본 글꼴입니다. DEFAULT_GUI_FONT 또는 SYSTEM_FONT 사용하여 대화 상자와 창에서 사용하는 글꼴을 가져오는 것은 권장되지 않습니다. 자세한 내용은 설명 섹션을 참조하세요.기본 글꼴은 Tahoma입니다. |
OEM_FIXED_FONT | OEM(Original Equipment Manufacturer) 종속 고정 피치(monospace) 글꼴입니다. |
SYSTEM_FONT | 시스템 글꼴입니다. 기본적으로 시스템은 시스템 글꼴을 사용하여 메뉴, 대화 상자 컨트롤 및 텍스트를 그립니다. DEFAULT_GUI_FONT 또는 SYSTEM_FONT 사용하여 대화 상자와 창에서 사용하는 글꼴을 가져오는 것은 권장되지 않습니다. 자세한 내용은 설명 섹션을 참조하세요.기본 시스템 글꼴은 Tahoma입니다. |
SYSTEM_FIXED_FONT | 고정 피치(모노스페이스) 시스템 글꼴입니다. 이 스톡 개체는 3.0 이전의 16비트 Windows 버전과의 호환성을 위해서만 제공됩니다. |
DEFAULT_PALETTE | 기본 색상표입니다. 이 색상표는 시스템 팔레트의 정적 색으로 구성됩니다. |
2. 사용 시 주의사항
GetStockObject 함수로 얻은 핸들 값은 DeleteObject나 CloseHandle을 사용해서 제거하면 안됩니다.
해당 핸들 값은 해당 프로그램을 위해 별도 생성되어 전달되는 자원이 아니라 기본적으로 운영체제가 가지고 있는 자원이라서 제거 함수 사용시 오류 발생합니다.
3. 사용 예시

case WM_RBUTTONDOWN:
{
HDC hdc = ::GetDC(hWnd);
SelectObject(hdc, GetStockObject(DKGRAY_BRUSH));
Rectangle(hdc, 400, 400, 500, 500);
::ReleaseDC(hWnd, hdc);
return 0;
}
4. 참조
https://blog.naver.com/tipsware/220988417978
GetStockObject 함수에 대하여
1. 운영체제와 'Stock Object' 'Stock'의 사전적 의미는 '재고품', '저장품', '주식 자본' 같은 뜻...
blog.naver.com
'Win32 API' 카테고리의 다른 글
16. Win32 API - Direct2D (0) | 2024.03.16 |
---|---|
15. Win32 API - GDI+ (0) | 2024.03.16 |
13. Win32 API - 윈도우 좌표 (0) | 2024.03.09 |
12. Win32 API - 무효화 / 유효화 영역 (0) | 2024.03.06 |
11. Win32 API - Bitmap (0) | 2024.03.02 |