'GetSystemMetrics'에 해당되는 글 1건

  1. 2009.05.31 [Win32API] 타이틀바 높이 알아오기 - GetSystemMetrics() 1
안녕하세요? 맨날맑음 입니다.
아르바이트 삼아 하고있는 프로그램 제작하다가 타이틀바의 높이를 알아 올 일이 생겼습니다.
C#에서는 제공하는 클래스가 없는것 같고, API 함수를 쓰면 쉽게 해결 할 수 있습니다.
int WINAPI GetSystemMetrics(int nIndex );
사실 GetSystemMetrics 함수는 매개변수에 따라 여러가지 기능을 하는데요. 주로 시스템의 구성이나 설정을
얻어올 때 사용됩니다. 시스템 영역의 정보를 얻어오려면 이 함수의 기능을 찾아보면 거의 있습니다.
그중에서 이번엔 타이틀바의 높이를 알아오는 방법을 알아보겠습니다. 타이틀바의 높이는
SM_CYCAPTION
플래그를 매개변수로 넣어주어 리턴되는 값으로 얻어 올 수 있습니다.

저는 C#에서 사용하여야 했기 때문에 윈폼 프로젝트로 테스트해 보았습니다.
[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
public static extern int GetSystemMetrics(int nIndex);
public Form1()
{
     InitializeComponent();
     const int SM_CYCAPTION = 4;
     int height = GetSystemMetrics(SM_CYCAPTION);            
     this.Text += height.ToString();
}
너무 간단하지만, C#에서 함수 사용을 위해 DLL 선언을 해주었고, CM_CYCAPTION = 4 를
매개변수로 하여 해당 함수를 호출하여 높이를 얻어왔습니다.


실행화면
윈도우 설정에서 타이틀바의 높이를 변경해 보았는데요. 잘 얻어오는 것을 알 수 있습니다.


Posted by 맨날맑음
,