[MFC] 버튼 ID와 컨트롤 주소를 이용해서 캡션 (Caption) 바꾸기
garage-fullof-dummy.tistory.com/59
[MFC]버튼(Button) 클릭으로 캡션 바꾸기
이 포스팅에서는 에디트 컨트롤에 입력된 글자로 버튼 위의 글씨를 바꿔보겠습니다. garage-fullof-dummy.tistory.com/51 [MFC] 프로젝트 생성하기 1. Microsoft Visual 2008을 시작해서 프로젝트를 새로 생성해..
garage-fullof-dummy.tistory.com
위의 포스팅으로 진행해도 버튼 클릭으로 캡션을 바꿀 수 있다.
위의 경우는 버튼의 ID를 알고 있는 경우이다.
*** 버튼의 ID 를 이용하는 경우
프로젝트를 진행하다가 버튼의 ID를 모르는 상태에서 버튼의 ID를 얻어서 이 포스팅에서처럼 버튼 캡션의 이름을 변경해 주는 방법을 알아내서 첨부한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
void Cbutton_testDlg::OnBnClickedButton1() { // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
int ctrl_id = GetFocus()->GetDlgCtrlID(); ChangeButtonName(ctrl_id); }
void Cbutton_testDlg::ChangeButtonName(int ctrl_id) { CWnd* m_ptbtn =NULL; m_ptbtn = GetDlgItem(ctrl_id);
CString temp; CWnd* m_edit; m_edit = GetDlgItem((IDC_EDIT1)); m_edit->GetWindowText(temp); m_ptbtn->SetWindowText(temp); } |
cs |
버튼 클릭 처리 함수에는 GetFocus와 GetDlgCtrlID를 이용해서 컨트롤 ID를 얻고,
GetDlgItem을 이용해서 생성된 컨트롤의 주소를 얻어 버튼의 캡션을 바꿔준다.