프로그래밍/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_GROUP, 20, 240, 80, 25, hWnd, (HMENU)ID_RADIO1, hInst, NULL);
CreateWindow(TEXT("button"), TEXT("타원"), WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, 20, 280, 80, 25, hWnd, (HMENU)ID_RADIO2, hInst, NULL);
CreateWindow(TEXT("button"), TEXT("빨강"), WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON | WS_GROUP, 150, 250, 80, 25, hWnd, (HMENU)ID_RADIO3, hInst, NULL);
CreateWindow(TEXT("button"), TEXT("초록"), WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, 150, 280, 80, 25, hWnd, (HMENU)ID_RADIO4, hInst, NULL);
CreateWindow(TEXT("button"), TEXT("파랑"), WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, 150, 320, 80, 25, 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(255, 0, 0));
break;
case 1:
myBrush = CreateSolidBrush(RGB(0, 255, 0));
break;
case 2:
myBrush = CreateSolidBrush(RGB(0, 0, 255));
break;
}
oldBrush = (HBRUSH)SelectObject(hdc, myBrush);
switch (nGraph)
{
case 0:
Rectangle(hdc, 10, 400, 200, 500);
break;
case 1:
Ellipse(hdc, 10, 400, 200, 500);
break;
}
SelectObject(hdc, oldBrush);
DeleteObject(myBrush);
EndPaint(hWnd, &ps);
}
break;
|
cs |