본문 바로가기

3.구현/VC++

[컨트롤이야기] 콤보박스 스크롤 크기 조절

[컨트롤이야기] 콤보박스

작성자: Ospace(ospace114@empal.com)

콤보박스 스크롤 크기 조절하기

VC에서 Dialog를 하나를 작성해서 콤보박스를 추가하고 데이터 목록을 추가하고 프로그램을 실행했다. 그런데, 딱 한줄의 데이터만 보이고, 옆에 조그만한게 스크롤바가 표시되었다. 아래 그림을 참조하길 바란다.

combobox01.PNG

장말 짜증나는 일이다. MSDN을 찾아봐도 아무런 설명이 없다. 콤보닥스 스크롤 크기조절에 대해서는 아무말도 없다. 혹시나 해서 예제 코드를 만들어서 시험해도 마찬가지이다. 그 예제가 앞의 그림이다. 인터넷 검색해도 딱히 나오지 않은다. 2일째 막히고 있다.

그러던중 까막님의 블러그에서 중요한 힌트를 얻게되었다. 까막님은 VC 6.0이라서 지금 VC .Net 2003이나 2005하고는 UI가 틀려서 그냥 지나칠수 있는 문제이다. 아래가 까막님이 설명한 내용이다.

-- 까막님 글 시작 -------------------------------

까막-combobox01.jpg

저런 현상(콤보박스에서 데이터 목록이 보이지 않은 현상)을 막아주기 위해서, 리소스 편집창에서 편집할 경우, 콤보 박스의 우측 버튼을 마우스로 눌러주면 위 그림처럼 주변의 트랙커가 활성화 된다. 마우스로 찍을 때마다 토글 되므로 그림처럼 활성화된 트랙커를 이용하여 크기를 변경할 수 있다.

-- 까막님 글 끝 -------------------------------

사실 처음에 위의 내용을 지나쳐버렸다. 왜냐하면 바로 이해가 되지 않고 나와 비슷한데 똑같지 않아서 그냥 지나쳐 버렸다.

그럼 다시 한번더 보자..
먼저 콤보박스를 대화상자 적당한 위치에 놓는다. 그리고 대화상자를 선택한다. 그러면 아래 그림과 같아진다. 이 상황은 콤보박스 좌우 크기를 변경할 수 있다.

combobox02.PNG

위의 그림을 보면 콤보박스 오른쪽에 드롭 다운 버튼위로 마우스 버튼을 갔다 놓으면 상하 리사이즈 마우스 커서 모양으로 변경된다. 이때 마우스를 클릭해서 드롭다운 버튼을 선택한다. 그렇게 하면 아래쪽에 검은점이 표시된다. 지금 상태가 콤보박스의 스크롤 크기를 조절할 수 있다. 해당 스크롤 크기를 밑으로 드래그해서 크기를 늘리면 된다. 아래 그림 처럼 적당한 크기로 늘린다.

combobox03.PNG

그래서 실행하면 우리가 원하는 스크롤 크기를 얻을 수 있다.

combobox04.PNG

Type과 No Integral Height 속성

추가로 콤보박스 속성 두가지를 더 알아보자. 바로 Type과 No Integral Height이다.

combobox05.PNG

Type은 콤보박스 모양으로 Simple, Dropdown, Drop list가 있다. No Integral Height은 True 혹은 False 값만 가진다.

먼저 Type은 콤보박스 모양으로 Simple을 값을 선택하는 스크롤 값이 리스트 박스 형태로 선택 가능하게 항시 표시되게 한다.
Dropdown과 Drop list가 비슷하다. Dropdown은 에디트 박스에 있는 값을 수정할 수 있다. 즉 에디트 박스에서 입력, 삭제 등의 수정이 가능하다. 그리거 Drop list는 수정 불가이다. 선택된 값만 사용가능하다.
그래서 Dropdown은 선택되면 값이 반전되면서 해당 값이 선택되고 수정가능한 표시를 해준다. Drop list는 선택해서 선택된 값만 표시되며 아무러 수정이 불가능하다.

다음으로 No Integral Height로서 이 속성을 사용하는지 하지 않은지를 지정한다. 사용하는 경우(True)는 Integral Height로 정수 높이를 가지지 않게 된다. 즉 왼쪽에서 세번째 콤보박스를 보면 마지막 "4"값이 잘려보인다. 숫자로 표시하면 1/4정도가 가려져 있다. 어떻게 보면 한게 값 높이가 1로 가정했을때 높이가 정수값을 갖지 않게 된다.
이값을 false로 정수 높이를 갖게된다면 중간에 잘리는 값을 표시하지 않고 정확히 아이템 높이에 맞춰서 보이게 된다. 즉 전에는 3 + 3/4 정도 높이라고 하면 지금은 3 높이를 갖게 된다.

참조

http://crowback.tistory.com/entry/콤보박스-컨트롤-시작하기

반응형