6.3.3 실숫값을 입력 받는 감마 보정 대화 상자 만들기
ImageTool 프로그램에 감마 보정 메뉴를 추가하기에 앞서 감마 값을 입력 받을 대화 상자를 만들어보자. 대화 상자의 모양은 6.2절에서 만든 밝기/명암비 조절 대화 상자와 유사한 방식으로 만들려고 한다. 감마 보정을 위해서는 정숫값이 아닌 float 값을 입력 받아야 한다는 차이점이 있지만, 이는 추후 프로그램 코드상에서 보정할 것이다.
먼저 Visual Studio 리소스 뷰에서 새 대화 상자를 하나 추가하고, 이 대화 상자의 속성을 표 6-8과 같이 입력하자.
속성 이름 |
속성 값 |
ID |
IDD_GAMMA_CORRECTION |
Caption |
감마 보정 |
그림 6-27은 감마 보정 대화 상자의 디자인을 보여준다. 여기에 들어가는 컨트롤들의 종류와 속성들에 대해서는 표 6-9에 나타내었다. 그림과 표를 참조하여 대화 상자를 디자인하도록 하자.
탭 순서 |
ID |
종류 |
속성 이름 |
속성 값 |
1 |
IDC_STATIC |
Group Box |
Caption |
감마(&Gamma) 값 입력 |
2 |
IDC_GAMMA_SLIDER |
Slider Control |
Auto Ticks |
True |
Orientation |
Horizontal |
|||
Point |
Bottom/Right |
|||
Tick Marks |
True |
|||
3 |
IDC_GAMMA_EDIT |
Edit Control |
Align Text |
Center |
4 |
IDOK |
Button |
Caption |
확인 |
5 |
IDCANCEL |
Button |
Caption |
취소 |
감마 보정 대화 상자의 디자인을 마쳤으면, 이 대화 상자에 대한 클래스를 추가하자. 감마 보정 대화 상자의 클래스 이름은 CGammaCorrectionDlg를 사용하기로 하자. 그리고 슬라이더 컨트롤과 에디트 컨트롤에 대한 멤버 변수를 추가하자. 추가할 멤버 변수의 속성은 표 6-10에 정리하였다. 멤버 변수 추가 마법사에서 IDC_GAMMA_EDIT에 해당하는 멤버 변수 m_fGamma의 값의 최솟값과 최댓값을 각각 0.20과 5.00으로 설정하자.
ID |
범주 |
변수 형식 |
변수 이름 |
최솟값 |
최댓값 |
IDC_GAMMA_SLIDER |
Control |
CScliderCtrl |
m_sliderGamma |
||
IDC_GAMMA_EDIT |
Value |
float |
m_fGamma |
0.20 |
5.00 |