MFC/Visual C++ 2008

[MFC] 버튼 ID와 컨트롤 주소를 이용해서 캡션 (Caption) 바꾸기

nirocat 2021. 1. 25. 11:13
반응형

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);

}

Colored by Color Scripter

cs

버튼 클릭 처리 함수에는 GetFocus와 GetDlgCtrlID를 이용해서 컨트롤 ID를 얻고, 

GetDlgItem을 이용해서 생성된 컨트롤의 주소를 얻어 버튼의 캡션을 바꿔준다.

728x90