CCombobox에 사용자가 Item을 아직 선택하지 않았다는 것을 인지시켜야할 경우가 있습니다! 일종의 Null값을 보여주려고 합니다. 그래서 combox item에 Not Defined는 없지만 값을 선택하기 전에 기본적으로 Not Defined라고 보여주기로 했습니다.
아래와 같이 성별을 설정하는 ComboBox라고 가정해보겠습니다.
CComboBox mycombo;
mycombo.AddString("여");
mycombo.AddString("남");
방법
1. CCombobox 의 Type을 Drop Down으로 설정해줍니다.
2. CCombobox에 값을 표시할 때 만약 설정값이 -1이면 Not Defined로 표시해줍니다.
gender = -1
if(gender == -1){
mycombo.SetWindowText("Not Defined");
}else{
mycombo.SetCurSel(gender);
}
3. 여기서 문제는 Dropdown은 사용자가 combobox에 표시된 값을 수정할 수있다는 점입니다. 그렇기에 설정된 값을 변경하지 못하게 설정해줍니다.
- CCombobox의 CBN_EDITCHANGE 이벤트 함수를 생성합니다. (사용자가 combobox에있는 값을 키보드로 바꿀때 호출되는함수입니다.)
- 이 이벤트 함수가 호출되면 아래처럼 원래 값을 다시 설정해주는겁니다! 그럼 값이 변경되지 않는 것 처럼 보이겠죠?
void MyDalog::OnCbnEditchangeMyCombo(){
gender = -1
if(gender == -1){
mycombo.SetWindowText("Not Defined");
}else{
mycombo.SetCurSel(gender);
}
}
'◼️MFC' 카테고리의 다른 글
[MFC] CFileDialog 사용 (0) | 2024.03.18 |
---|---|
[MFC] 콘솔창 생성 (0) | 2024.02.15 |
[MFC] Window 캡쳐 이벤트 발생시키기 (0) | 2024.02.15 |
[MFC] 원하는 텍스트를 txt파일로 생성하기 (0) | 2024.02.15 |
[MFC] CDialogBar 조작하기 (0) | 2024.02.15 |