8.4.3 잡음 추가 대화 상자 만들기
ImageTool 프로그램에 가우시안 잡음과 소금&후추 잡음 생성 기능을 추가하기에 앞서 먼저 잡음의 종류와 잡음의 양을 입력할 수 있는 잡음 추가 대화 상자를 만들도록 하자. 잡음 추가 대화 상자는 라디오 버튼을 사용하여 잡음의 종류를 선택하고, 에디트 컨트롤을 사용하여 잡음의 양을 입력 받을 것이다.
먼저 Visual Studio 리소스 뷰에서 새 대화 상자를 하나 추가하고, 이 대화 상자의 속성을 표 8-8과 같이 입력하자.
속성 이름 |
속성 값 |
아이디(ID) |
IDD_ADD_NOISE |
캡션 |
잡음 추가 |
그림 8-26은 잡음 추가 대화 상자의 디자인과 탭 순서를 보여준다. 컨트롤들이 매우 밀집하여 배치되어 있어서 순수한 디자인 화면과 탭 순서를 표시한 디자인 화면을 각각 나타내었다. 잡음 추가 대화 상자에 들어가는 컨트롤들의 종류와 속성들에 대해서는 표 8-9에 나타내었다. 그림과 표를 같이 참조하여 대화 상자를 디자인하도록 하자.
탭 순서 |
아이디 |
종류 |
속성 이름 |
속성 값 |
1 |
IDC_STATIC |
Group Box |
Caption |
잡음의 종류 |
2 |
IDC_NOISE_RADIO1 |
Radio Button |
Caption |
가우시안 (&Gaussian) |
Group |
True |
|||
3 |
IDC_NOISE_RADIO2 |
Radio Button |
Caption |
소금 && 후추 (&Salt && Pepper) |
Group |
False |
|||
4 |
IDC_STATIC |
Static Text |
Caption |
잡음의 양(&A): |
5 |
IDC_NOISE_AMOUNT |
Edit Control |
Align Text |
Center |
6 |
IDC_SPIN_AMOUNT |
Spin Control |
Auto Buddy |
True |
Set Buddy Integer |
True |
|||
Alignment |
Right Align |
|||
7 |
IDC_STATIC |
Static Text |
Caption |
% |
8 |
IDOK |
Button |
Caption |
확인 |
9 |
IDCANCEL |
Button |
Caption |
취소 |
잡음 추가 대화 상자 디자인에서 특이한 점은 스핀 컨트롤의 위치와 탭 순서이다. 보통 스핀 컨트롤은 독립적으로 사용되지 않고 에디트 컨트롤과 연계하여 사용된다. 그렇기 때문에 스핀 컨트롤의 탭 순서는 해당 스핀 컨트롤이 함께 사용될 에디트 컨트롤 다음 번호로 지정해야 한다. 그리고 스핀 컨트롤의 속성 중 Auto Buddy를 True로 설정하면 프로그램 동작 시 에디트 컨트롤 안에 스핀 컨트롤이 포함되어 나타난다. 이를 확인해보기 위해 대화 상자 디자인 화면에서 [서식] > [대화 상자 테스트] 메뉴를 실행해보자. 그러면 그림 8-27과 같이 테스트를 위한 잡음 추가 대화 상자가 화면에 나타날 것이며, 스핀 컨트롤이 에디트 컨트롤 안에 깔끔하게 들어가 있는 것을 확인할 수 있다. 이처럼 스핀 컨트롤은 실행 시 에디트 컨트롤 안으로 들어가버리기 때문에 대화 상자 디자인 시에는 스핀 컨트롤을 아무 위치에 배치하여도 상관이 없다. 보통 연관된 에디트 컨트롤 주변 빈 곳에 적절히 위치시키고, 탭 번호만 에디트 컨트롤 다음 번호로 지정하면 된다.