반도체/MFC

4. MFC 에서 enum개념

Clair_de_Lune 2024. 8. 14. 13:30
728x90

MFC(Microsoft Foundation Classes)에서 enum(열거형)은 관련 상수의 집합을 정의하는 데 사용되는 데이터 타입입니다. 열거형을 사용하면 코드의 가독성을 높이고, 의미 있는 이름으로 상수를 정의함으로써 코드 유지보수를 용이하게 할 수 있습니다.

1. enum의 기본 개념

enum은 기본적으로 정수형 상수를 정의하는 방법입니다. C++에서 enum을 사용하면 다음과 같이 정의할 수 있습니다:

enum Color {
    Red,    // 0
    Green,  // 1
    Blue    // 2
};

위의 예제에서 Color라는 열거형은 Red, Green, Blue 세 가지 색상을 정의합니다. 기본적으로 Red는 0, Green은 1, Blue는 2의 값을 가집니다. 이러한 기본값은 필요에 따라 변경할 수 있습니다.

2. MFC에서의 사용 예

MFC에서는 enum을 다양한 상황에서 주로 사용합니다. 예를 들어, 메시지 핸들러, 상태 표시, 명령 ID 등을 정의할 때 열거형을 활용할 수 있습니다.

예제: 상태 표시

enum Status {
    Idle,
    Running,
    Paused,
    Stopped
};

// 상태를 변수로 사용
Status currentStatus = Idle;

// 상태에 따라 동작
if (currentStatus == Running) {
    // 실행 중일 때의 처리
}

3. enum을 사용한 메시지 핸들링

MFC에서 사용자 인터페이스를 다룰 때, enum을 사용하여 다양한 상태를 처리할 수 있습니다. 예를 들어, 버튼 클릭에 대한 처리를 다음과 같이 할 수 있습니다.

enum ButtonState {
    Normal,
    Hovered,
    Clicked
};

class CMyDialog : public CDialogEx {
public:
    ButtonState btnState;

    void OnButtonClick() {
        btnState = Clicked;
        // 버튼 클릭 처리 로직
    }
};

4. 열거형의 확장

C++11 이후, 열거형에 명시적인 타입을 지정할 수 있습니다. 이렇게 하면 열거형 값의 범위를 제한하고, 타입 안전성을 높일 수 있습니다.

enum class Fruit : int {
    Apple = 1,
    Banana = 2,
    Cherry = 3
};

// 사용 예
Fruit myFruit = Fruit::Apple;

5. MFC에서의 사용 예시

MFC의 다양한 클래스와 함께 enum을 활용할 수 있습니다. 예를 들어, 도형을 그리는 프로그램에서 도형의 종류를 열거형으로 정의할 수 있습니다.

enum ShapeType {
    Circle,
    Rectangle,
    Triangle
};

class CShape {
public:
    ShapeType type;

    void Draw() {
        switch (type) {
            case Circle:
                // 원 그리기
                break;
            case Rectangle:
                // 사각형 그리기
                break;
            case Triangle:
                // 삼각형 그리기
                break;
        }
    }
};

요약

MFC에서 enum은 관련 상수 집합을 정의하여 코드의 가독성을 높이고 유지보수를 용이하게 하는 데 사용됩니다. 열거형을 사용하면 명확한 이름으로 상태나 동작을 표현 가능

 

 

728x90