본문 바로가기

Windows/MFC

GetSystemMetrics

GetSystemMetrics

원형

int GetSystemMetrics( int nIndex );

MFC 원형

해당하는 함수 없음

인수

▶nIndex : 조사하고자 하는 설정 정보. 보통 SM_CX, SM_CY로 시작하는데 각각 X축 설정값과 Y축 설정값으로 구성되어 있다. 운영체제 버전에 따라 사용할 수 있는 인덱스의 종류는 달라진다.

인덱스

설명

SM_ARRANGE

최소화된 윈도우를 어떤 식으로 정렬할 것인가를 지정한다. 정렬 시작 위치와 방향을 리턴하는데 시작 위치는 다음 중 하나이다.

리턴값

설명

ARW_BOTTOMLEFT

바닥 왼쪽(디폴트)

ARW_BOTTOMRIGHT

바닥 오른쪽

ARW_HIDE

최소화된 윈도우를 숨긴다.

ARW_TOPLEFT

상단 왼쪽

ARW_TOPRIGHT

상단 오른쪽

정렬 방향은 ARW_DOWN, ARW_LEFT, ARW_RIGHT, ARW_UP 중 하나가 된다.

SM_CLEANBOOT

시스템이 어떻게 부팅되었는지를 조사한다. 0이면 보통 모드로 부팅된 것이고 1이면 세이프 모드로 부팅한 것이고 2이면 네트웍 지원이 있는 세이프 모드로 부팅한 것이다.

SM_CMONITORS

98, 2000 이상 : 데스크탑의 모니터 개수

SM_CMOUSEBUTTONS

마우스의 버튼 개수. 0이면 마우스가 설치되어 있지 않다.

SM_CXBORDER, SM_CYBORDER

윈도우 경계선의 폭과 높이를 픽셀 단위로 조사한다. 3D 스타일의 SM_CXEDGE와 동일하다.

SM_CXCURSOR, SM_CYCURSOR

커서의 폭과 높이. 커서는 반드시 이 크기대로 만들어야 하며 시스템은 다른 크기의 커서를 만들 수 없다.

SM_CXDLGFRAME, SM_CYDLGFRAME

SM_CXFIXEDFRAME, SM_CYFIXEDFRAME과 동일하다.

SM_CXDOUBLECLK, SM_CYDOUBLECLK

더블클릭으로 인정되는 영역의 폭과 높이. 첫번째 클릭 후 이 영역 범위에서 마우스 버튼을 클릭해야만 더블클릭으로 인정된다. 아무리 지정된 시간내에 마우스 버튼을 누르더라도 두 클릭 영역이 이 영역바깥이면 더블클릭으로 인정되지 않는다.

SM_CXDRAG,
SM_CYDRAG

최초 마우스 버튼을 누른 후 드래그를 시작하기 위해 움직여야 하는 거리를 조사한다. 마우스 버튼을 누른 후 최소한 이 거리만큼은 움직여야 드래그를 시작하는 것으로 인정된다. 이 기능은 마우스 버튼을 누른 즉시 드래그를 시작하지 않도록 함으로써 원치않은 드래그를 시작하지 않도록 해 준다.

SM_CXEDGE,
SM_CYEDGE

3D 경계선의 폭과 높이

SM_CXFIXEDFRAME, SM_CYFIXEDFRAME

캡션은 있으나 크기 조정이 불가능한 윈도우의 프레임의 폭과 두께

SM_CXFOCUSBORDER, SM_CYFOCUSBORDER

XP이상:DrawFocusRect 로 그려질 포커스 사각형의 폭과 높이

SM_CXFRAME, SM_CYFRAME

SM_CXSIZEFRAME, SM_CYSIZEFRAME과 동일하다.

SM_CXFULLSCREEN, SM_CYFULLSCREEN

프라이머리 디스플레이 모니터에서 최대화된 윈도우의 작업 영역 크기. 이 영역의 크기는 전체 화면에서 타스크 바가 차지하고 있는 영역과 타이틀 바의 높이는 제외된다. 크기가 아닌 영역 좌표를 조사하고자 할 때는 SystemParametersInfo 함수를 SPI_GETWORKAREA로 호출해야 한다.

SM_CXHSCROLL, SM_CYHSCROLL

스크롤 바의 화살표 비트맵의 폭과 높이.

SM_CXHTHUMB

스평 스크롤 바 썸의 폭

SM_CXICON, SM_CYICON

아이콘의 폭과 높이. LoadIcon은 이 크기의 아이콘만 읽을 수 있다.

SM_CXICONSPACING, SM_CYICONSPACING

큰 아이콘 보기에서 아이콘간의 간격. 아이콘을 정렬할 때 이 사각 영역에 맞게 정렬된다. 이 값은 SM_CXICON, SM_CYICON보다는 커야 한다.

SM_CXMAXIMIZED, SM_CYMAXIMIZED

프라이머리 디스플레이 모니터에서 최대화된 탑 레벨 윈도우의 크기. 이 영역의 크기는 전체 화면에서 타스크 바가 차지하고 영역은 제외한 영역이며 화면 밖으로 나가는 경계선 폭은 추가된다.

SM_CXMAXTRACK, SM_CYMAXTRACK

캡션과 타이틀 바를 가진 최대화된 윈도우의 크기. 사용자가 윈도우의 프레임을 드래그하여 크기를 조정할 때 이 크기 이상의 윈도우로 만들 수는 없다. 일반적으로 이 값은 데스크탑의 크기보다 조금 더 크다. 이 값을 변경하려면 WM_GETMINMAXINFO 메시지에서 별도의 최대값을 주면 된다.

SM_CXMENUCHECK, SM_CYMENUCHECK

메뉴 체크 비트맵의 크기

SM_CXMENUSIZE, SM_CYMENUSIZE

메뉴 바의 버튼 크기. MDI의 차일드 윈도우에 나타나는 닫기 버튼이 이 크기대로 생성된다.

SM_CXMIN, SM_CYMIN

윈도우의 최소 크기. 윈도우를 이 크기 이하로 만들 수는 없다.

SM_CXMINIMIZED, SM_CYMINIMIZED

최소화된 윈도우의 크기

SM_CXMINSPACING SM_CYMINSPACING

최소화된 윈도우가 정렬될 사각형의 크기. 최소화된 윈도우는 이 사각형안에 정렬된다.

SM_CXMINTRACK, SM_CYMINTRACK

마우스로 경계선을 드래그하여 윈도우 크기를 조정할 때의 최소 크기. 사용자는 이 크기 이하로 윈도우 경계선을 드래그할 수 없다. 이 값을 변경하려면 WM_GETMINMAXINFO 메시지에서 별도의 최소값을 주면 된다.

SM_CXSCREEN, SM_CYSCREEN

프라이머리 디스플레이의 화면 크기. 이 값은 데스크탑 DC로 GetDeviceCaps 함수를 호출하여 HORZRES, VERTRES를 호출한 결과와동일하다.

SM_CXSIZE, SM_CYSIZE

인도우 타이틀 바에 나타날 버튼의 폭과 높이

SM_CXSIZEFRAME, SM_CYSIZEFRAME

크기 조절이 가능한 경계선의 폭과 높이.

SM_CXSMICON, SM_CYSMICON

작은 아이콘의 크기. 타이틀 바나 작은 아이콘 보기 상태의 아이콘은 이 크기대로 보여진다.

SM_CXSMSIZE SM_CYSMSIZE

작은 캡션 버튼의 크기

SM_CXVIRTUALSCREEN, SM_CYVIRTUALSCREEN

98/ME, 2000이상 : 가상 스크린의 폭과 높이. 이 크기는 모든 디스플레이 모니터 영역을 둘러싸는 크기를 가진다.

SM_CXVSCROLL, SM_CYVSCROLL

수직 스크롤 바의 폭. 수직 스크롤 바 화살표 비트맵의 높이

SM_CYCAPTION

캡션 영역의 높이.

SM_CYKANJIWINDOW

Kanji 윈도우의 높이

SM_CYMENU

메뉴 바의 높이

SM_CYSMCAPTION

작은 캡션의 높이

SM_CYVTHUMB

수직 스크롤 바의 썸 높이

SM_DBCSENABLED

User.exe가 DBCS 버전이면 TRUE이며 그렇지 않으면 FALSE이다. 한글 윈도우즈에서 이 값은 TRUE로 조사된다.

SM_DEBUG

User.exe가 디버깅 버전이면 TRUE이며 그렇지 않으면 FALSE이다.

SM_IMMENABLED

2000dltkd : IME를 사용할 수 있으면 TRUE이다.

SM_MENUDROPALIGNMENT

드롭다운 메뉴가 메뉴 바 항목의 오른쪽으로 정렬되면 TRUE이며 그렇지 않으면 FALSE이다.

SM_MIDEASTENABLED

헤브루, 아랍 언어를 지원하면 TRUE이다. 한글 윈도우즈에서 이 값은 FALSE이다.

SM_MOUSEPRESENT

마우스가 설치되어 있으면 TRUE이다.

SM_MOUSEWHEELPRESENT

NT 4.0이상, 98/ME이상 : 휠 마우스가 설치되어 있으면 TRUE이다.

SM_NETWORK

네트웍이 존재하면 LSB(최하위 비트)가 1이다. 나머지 비트는 예약되어 있다.

SM_PENWINDOWS

펜 컴퓨터 지원이 설치되어 있으면 TRUE이다.

SM_REMOTESESSION

NT 4.0 SP4 이상 : 터미널 서비스 환경에서 사용되며 호출 프로세스가 터비널 서비스의 클라이언트 세션에 연결되어 있으면 TRUE이다.

SM_SECURE

보안 기능이 있으면 TRUE이다.

SM_SAMEDISPLAYFORMAT

98/ME, 2000이상 : 모든 디스플레이 모니터가 같은 색상 포맷을 사용하면 TRUE를 리턴한다.

SM_SHOWSOUNDS

사운드를 화면으로 보여주도록 설정되어 있으면 TRUE이다.

SM_SHUTTINGDOWN

XP이상 : 현재 세션이 셧다운중이면 TRUE이다.

SM_SLOWMACHINE

컴퓨터가 느린 프로세서를 가지고 있으면 TRUE이다.

SM_SWAPBUTTON

마우스의 좌우 버튼이 바뀌어 있으면 TRUE이다.

SM_XVIRTUALSCREEN, SM_YVIRTUALSCREEN

98/ME이상, 2000이상 : 가상 스크린의 왼쪽 위의 좌표.

 

리턴

조사된 설정 정보를 리턴한다. 실패시 0을 리턴한다.

설명

시스템 설정 정보를 조사한다. nIndex가 지정하는 정보를 조사해 주며 각 값을 해석하는 방법은 nIndex에 따라 다르다. 시스템의 설정값은 실행중에도 항상 변경될 수 있으므로 이 함수로 필요한 설정 정보를 그때 그때 조사해서 사용해야 한다. 예를 들어 마우스가 설치되어 있지 않은 시스템에서 실행을 거부한다거나 할 때 이 함수로 마우스 설치 여부를 조사할 수 있다. 이 함수는 값을 조사할 수만 있으며 변경할 수는 없다.

참고함수

SystemParametersInfo

플랫폼

95이상

참조

25-2-가절의 SysMetrics예제는 모든 시스템 설정 정보를 한 화면에 보여준다. 이 예제를 실행해 보면 시스템 설정 정보를 한눈에 알 수 있다.


written by http://www.winapi.co.kr

'Windows > MFC' 카테고리의 다른 글

[GDI+] RoundRect  (0) 2013.10.02
MulDiv  (0) 2013.10.02
CTypedPtrList  (0) 2013.10.02
outlook style splitter  (0) 2013.10.02
outlook style splitter  (0) 2013.10.02