카테고리 없음
체크박스 동적 생성
에어버스
2019. 5. 17. 12:48
체크박스 동적 생성
1. 5행에서 멤버변수로 선언
2. OnCreate() 에서 13행 처럼 Create() 로 생성, 이때 지정한 ID 값으로 메시지 처리한다.
3. 메시지 처리를 위해 OnCommand() 에서 wParam 으로 체크박스ID 인지 구분해서 처리하면 된다.
메시지 처리기에서 23행을 주석처리하면 체크표시 안되므로 SetCheck() 를 해줘야 체크 표시된다.
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 |
class CMFCApplication1View : public CView
{
...
private:
CButton m_btn;
}
int CMFCApplication1View::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: 여기에 특수화된 작성 코드를 추가합니다.
m_btn.Create(TEXT("안녕"), WS_CHILD | WS_VISIBLE | BS_CHECKBOX, CRect(10, 10, 100, 30), this, 13);
}
BOOL CMFCApplication1View::OnCommand(WPARAM wParam, LPARAM lParam)
{
// TODO: 여기에 특수화된 코드를 추가 및/또는 기본 클래스를 호출합니다.
if (wParam == 13)
{
int b = m_btn.GetCheck();
b == BST_CHECKED ? b = BST_UNCHECKED : b = BST_CHECKED;
m_btn.SetCheck(b);
CString str;
str.Format(TEXT("저는 %d번 버튼입니다.~~ ^^;"), wParam);
AfxMessageBox(str);
}
return CView::OnCommand(wParam, lParam);
} |
cs |
실행결과>