본문 바로가기
C++ 200제/코딩 IT 정보

[MFC] C++ Switch Case에서 CString 사용

by vicddory 2017. 8. 27.

[MFC] C++ Switch Case에서 CString 사용


기본적으로 MFC에선 Switch문에서 CString을 사용할 수 없습니다. 정말 사용해야할 피치못할 상황이라면 조금 돌아가는 방법으로 MFC 스위치문에서 CString을 사용할 수 있죠. 관련 소스를 소개합니다.


MFC Switch문 CString[[MFC] C++ Switch Case에서 CString 사용]


우선, 아래처럼 스위치문에 필요한 키워드를 정의합니다.


1
2
3
4
5
#define STR_SWITCH(x)  {CString switchval(x); if (false) {;} // Semicolon is necessary
#define CASE(y)  else if (switchval == y) {;
#define DEFAULT else if (true) {;
#define BREAK  }
#define END_SWITCH }
cs


MFC에선 스위치문에 CString을 허용하지 않기에 이렇게 돌아가는 방법을 쓰는 것이죠.


실제 사용하는 방법은 아래에 있습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
STR_SWITCH(sName)
  CASE(_T("John"))
    // code
    BREAK
  CASE(_T("Bob"))
    // code
    BREAK
  CASE(_T("George"))
    // code
    BREAK
  CASE(_T("Fred"))
    // code
    BREAK
  CASE(_T("Harry"))
    // code
    BREAK
  DEFAULT
    return -1;
    BREAK
  END_SWITCH;
cs


MFC Switch문을 사용할 수 없으니, 사용자 정의 Switch문을 만든겁니다.


이정도로만 구현해도 MFC 스위치문 CString 사용엔 별 문제 없습니다. 잘 쓰세요~


[MFC] C++ Switch Case에서 CString 사용

댓글