의미.
화면상에 간단하게 문자열을 보여주는 것으로 부터... 비트맵 및 아이콘을 폼에 보여주는 것등의 기초 기능을 담당하고 있다.

기본기능.
1. 필요한 곳에 간단한 문자열등을 보여준다. (에디팅은 않된다.)
2. 비트맵과 아이콘과 같은 것들을 간단한 작업으로 화면에 보여줄 수 있다.
3. 간단한 도형의 출력을 도와준다.
4. 메타 파일을 보여줄 수 있다.

설명이 좀 이상하네??? 스태틱인데 왠 이미지???
리소스 창에서는 Text 컨트롤(스태틱 컨트롤)과 Picture 컨트롤로 분리되어 있지만 모두 CStatic으로 구현된
것들이다. 이를 ActiveX 로 만들면서 대표적인 기능으로 분리해 놓았을 뿐 모두 CStatic로 구현 가능하다.

 

리소스 편집창에서 오른쪽의 빨강 똥그라미가 Text 컨트롤, 파랑 똥그라미가 Picture 컨트롤이다. 모두 CStatic에서 제공하는 기능이지만, 문자열과 그림이라는 기준으로 분리되어 다루기 쉽게 해놓았다.

왼쪽의 [난 Text 컨트롤] 이라고 표현되어 있는 모든 것이 Text 컨트롤에 각각의 속성을 부여하여 여러가지 형태로 표현된 것이고,오른쪽에 보여지는 것이 Picture 컨트롤을 이용하여 속성을 부여해본 것들이다.

앞으로 하나의 CStatic 컨트롤을  Text와 Picture 두가지 관점에서 논할것이여, 가끔 짬뽕이 될 수도 있다 --;

컨트롤이 제공하는 속성을 살펴보자. 우선 Text 관점에서 먼저 본다.
프로퍼티의 General 탭의 설명은 생략한다. 중복되는 넘이므로 [에디트 컨트롤 기초편을 참조한다.]

1. Align Test - 문자열을 수평 왼쪽, 가운데, 오른쪽으로 정렬한다.
2. Center Verically - 문자열을 수직 가운데로 정렬한다.
3. No prefix - 윈도우 컴포넌트의 문자열중에 '&' 는 다음 문자에 _ 선을 그어준다. 이 기능을 제거한다.

그림을 보면 위에꺼는 디폴트, 아래껏은 No Prefix 옵션을 준 것이다.
4. No warp - 문자열의 길이가 컨트롤 너비보다 크면 자동으로 줄바꿈하여 다음줄에 그려진다. 이 기능을 끈다.

그림을 보면 아래쪽이 No Warp 옵션을 사용한 것이다.
5. simple  - 말 그대로 모든 속성을 포기하고, 기초 속성만을 사용함을 표시한다.
6. Notify - 내부 노티파이 이벤트를 부모에게 알려준다.
7. Sunken - 테두리 속성중에 가라 앉은 듯한 효과를 준다. 첫번째 그림중 왼쪽 5번째.
8. Border - 테두리 속성중에 검은색 사각 테두리. 첫번째 그림중 왼쪽 4번째.

1. Client edge -  확장 속성인것만 빼고, 위의 7번과 같다.
2. Static edge - 확장 속성인것만 빼고, 위의 8번과 같다.
3. Modal frame - 다이알로그 처럼 툭 튀어나온것 처럼 보여준다.
4. Transparent - 배경을 그리지 않는다.
5. Accept files - 파일을 드래그 하여 떨구면 이벤트를 발생시킨다.
6. Right aligned text - 문자열을 오른쪽 정렬한다.
7. Right-to-left reading order - 딴 나라를 위하여 오른쪽부터 왼쪽으로 문자열을 오더링한다.

컨트롤이 제공하는 속성을 살펴보자. Picture 관점에서 본다.

1. Type - 컨트롤의 타입을 설정한다.
    Frame - 그냥 비어있는 사각 틀로써 형태를 제공한다.
    Rectangle - 채워진 사각 틀로써 행테를 제공한다.
    Icon - 아이콘을 그려준다.
    Bitmap - 비트맵을 그려준다.
    Enhanced Metafile - 메타 이미지 파일을 그려준다.
2. Image - 위에서 Icon, Bitmap, Enhances Metafile 일경우만 활성화 되고, 현재 리소스 중에서 아이디를 선택할 수 있도록 해준다.
3. Color - 위에서 frame과 Rectangle 속성일 경우 색상을 지정할 수 있도록 해준다.

2번째(Styles)와 3번째(Extended Styles) 속성은 Text 컨트롤과 동일하다.

참고.
Text와 Picture 컨트롤은 다른 컨트롤과 달리 처음에 생성하면 모든 컨트롤의 아이디가

IDC_STATIC

이다. 다른 컨트롤은 뒤에 1, 2 처럼 숫자가 붙는데 좀 특이하다.

이유는 보통 리소스 편집창에서 주는 속성 말고는 코딩으로 먼가를 건드릴 일이 없기 때문에 특별하게 취급된다. 그러므로 코딩에서 저걸 건드릴려면 IDC_STATIC_MYSTATIC과 같이 변경을 가해줘야한다.

IDC_STATIC는 시스템 아이디이기 때문에  GetDlgItem(IDC_STATIC)와 같이 사용할 수 없다.

+ Recent posts