프로그래밍/API

API 버튼2 - 라디오버튼

에어버스 2016. 4. 30. 12:10

라디오바튼

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#define ID_RADIO1 401
#define ID_RADIO2 402
#define ID_RADIO3 403
#define ID_RADIO4 404
#define ID_RADIO5 405
 
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    HBRUSH myBrush, oldBrush;
    myBrush = oldBrush = NULL;
    static short nGraph = 0;
    static short nColor = 0;
    switch (message)
    {
    case WM_CREATE:
        CreateWindow(TEXT("button"), TEXT("사각형"), WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON | WS_GROUP202408025, hWnd, (HMENU)ID_RADIO1, hInst, NULL);
        CreateWindow(TEXT("button"), TEXT("타원"), WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, 202808025, hWnd, (HMENU)ID_RADIO2, hInst, NULL);
 
        CreateWindow(TEXT("button"), TEXT("빨강"), WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON | WS_GROUP1502508025, hWnd, (HMENU)ID_RADIO3, hInst, NULL);
        CreateWindow(TEXT("button"), TEXT("초록"), WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, 1502808025, hWnd, (HMENU)ID_RADIO4, hInst, NULL);
        CreateWindow(TEXT("button"), TEXT("파랑"), WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, 1503208025, hWnd, (HMENU)ID_RADIO5, hInst, NULL);
 
        CheckRadioButton(hWnd, ID_RADIO1, ID_RADIO2, ID_RADIO1); // 라디오 버튼1~버튼2 그룹 범위 지정
        CheckRadioButton(hWnd, ID_RADIO3, ID_RADIO5, ID_RADIO3); // 라디오 버튼3~버튼5 그룹 범위 지정
 
        break;
    case WM_COMMAND:
        {
            int wmId = LOWORD(wParam);
            // 메뉴 선택을 구문 분석합니다.
            switch (wmId)
            {
            case ID_RADIO1:
                nGraph = 0;
                break;
            case ID_RADIO2:
                nGraph = 1;
                break;
            case ID_RADIO3:
                nColor = 0;
                break;
            case ID_RADIO4:
                nColor = 1;
                break;
            case ID_RADIO5:
                nColor = 2;
                break;
              }
    InvalidateRect(hWnd, NULL, TRUE);
        break;
    }
    case WM_PAINT:
        {
            PAINTSTRUCT ps;
            HDC hdc = BeginPaint(hWnd, &ps);
            // TODO: 여기에 hdc를 사용하는 그리기 코드를 추가합니다.
            switch (nColor)
            {
            case 0:
                myBrush = CreateSolidBrush(RGB(25500));
                break;
            case 1:
                myBrush = CreateSolidBrush(RGB(02550));
                break;
            case 2:
                myBrush = CreateSolidBrush(RGB(00255));
                break;
            }
            oldBrush = (HBRUSH)SelectObject(hdc, myBrush);
            switch (nGraph)
            {
            case 0:
                Rectangle(hdc, 10400200500);
                break;
            case 1:
                Ellipse(hdc, 10400200500);
                break;
            }
            SelectObject(hdc, oldBrush);
            DeleteObject(myBrush);
            EndPaint(hWnd, &ps);
        }
        break;
 
 
cs