728x90
GetDeviceCaps함수는 지정된 Device Context의 여러 정보를 구하는 함수입니다.
Declare Function GetDeviceCaps Lib "gdi32" Alias "GetDeviceCaps" (ByVal hdc As Integer, ByVal nIndex As Integer) As Integer
▶VB.NET 선언
[DllImport("gdi32")]
public static extern int GetDeviceCaps(int hdc, int nIndex);
▶C# 선언
GetDeviceCaps함수는 첫번째 인수에서 정보를 구하고자할 Device Context를 지정하며 두번째 인수에서 어떠한 종류의 정보를 가져올지에 대한 flag를 지정합니다.
이때 지정할 수 있는 flag의 종류는 다음과 같은 것들이 있습니다.
상수 | 값 | 설명 |
DRIVERVERSION | 0 | Device Driver Version |
TECHNOLOGY | 2 | Device Technology(*1) |
HORZSIZE | 4 | Device Display 넓이(Milli) |
VERTSIZE | 6 | Device Display 높이(Milli) |
HORZRES | 8 | Display 넓이(Pixel) |
VERTRES | 10 | Display 높이(Pixel) |
BITSPIXEL | 12 | Pixel당 Color Bit수 |
PLANES | 14 | Color Plan |
NUMBRUSHES | 16 | 사용 Brush 수 |
NUMPENS | 18 | 사용 Pen 수 |
NUMFONTS | 22 | 사용 Font 수 |
NUMCOLORS | 24 | 사용 Color 수 |
PDEVICESIZE | 26 | 예약공간 |
CLIPCAPS | 36 | 사각형 Clipping 가능 여부(*2) |
ASPECTX | 40 | Line 그리기시 Pixel의 상대적 넓이 |
ASPECTY | 42 | Line 그리기시 Pixel의 상대적 높이 |
ASPECTXY | 44 | Line 그리기시 Pixel의 상대적 대각선 크기 |
LOGPIXELSX | 88 | Inch당 Pixel 수(넓이) |
LOGPIXELSY | 90 | Inch당 Pixel 수(높이) |
SIZEPALETTE | 104 | System Color 수 |
NUMRESERVED | 106 | System 예약 Color 수 |
COLORRES | 108 | Device 해상도(Pixel당 Bit) |
PHYSICALWIDTH | 110 | Print시 Page 넓이 |
PHYSICALHEIGHT | 111 | Print시 Page 길이 |
PHYSICALOFFSETX | 112 | Print시 좌측 여백 |
PHYSICALOFFSETY | 113 | Print시 상단 여백 |
SCALINGFACTORX | 114 | Print시 X축 Scale |
SCALINGFACTORY | 115 | Print시 Y축 Scale |
VREFRESH | 116 | 주파수(초당 Hz) |
BLTALIGNMENT | 119 | 다중 Pixel에서의 수평 Drawing 배열 |
SHADEBLENDCAPS | 45 | Device Shading및 Branding(*3) |
TECHNOLOGY 인수 지정시 반환값
상수 | 값 | 설명 |
DT_PLOTTER | 0 | Vector Plotter |
DT_RASDISPLAY | 1 | Raster Display |
DT_RASPRINTER | 2 | Raster Printer |
DT_RASCAMERA | 3 | Raster Camera |
DT_CHARSTREAM | 4 | Charactor Stream |
DT_METAFILE | 5 | Meta File |
DT_DISPFILE | 6 | Display File |
CLIPCAPS 인수 지정시 반환값
값 | 설명 |
1 | 가능 |
0 | 불가 |
SHADEBLENDCAPS 인수 지정시 반환값
상수 | 값 | 설명 |
SB_NONE | 0 | 지원없음 |
SB_CONST_ALPHA | 1 | Blendfunction 구조체 SourceConstantAlpha 요소 |
SB_PIXEL_ALPHA | 2 | AlphaBlend에서 Pixel당 Alpha 조정 |
SB_PREMULT_ALPHA | 4 | AlphaBlend에서 Pixel당 Premultiplied Alpha 요소 |
SB_GRAD_RECT | 10 | GradientFill 사격형 |
SB_GRAD_TRI | 20 | - |
위 인수를 토대로 GetDeviceCaps함수를 이용해 Desktop화면의 Display넓이를 구하려면 다음과 같이 호출될 수 있습니다.
Const HORZSIZE As Integer = 8
GetDeviceCaps(GetDC(GetDesktopWindow()), HORZSIZE)
▶VB.NET 호출
const int HORZSIZE = 8;
GetDeviceCaps(GetDC(GetDesktopWindow()), HORZSIZE);
▶C# 호출
728x90
'.NET > Windows API for .NET' 카테고리의 다른 글
SetFileAttributes - File의 속성설정 (0) | 2019.08.06 |
---|---|
GetWindowTextLength - 특정 Window의 제목문자열 크기구하기 (0) | 2019.08.06 |
Ellipse - Window나 Control에 타원그리기 (0) | 2019.08.06 |
GetShortPathName - 단축 path명 얻기 (0) | 2019.08.06 |
GetTempPath - Windws가 사용하는 임시 Folder의 Path를 반환 (0) | 2019.08.06 |