상태 표시줄 창의 텍스트 업데이트
이 문서에서는 MFC 상태 표시줄 창에 표시 되는 텍스트를 변경 하는 방법을 설명 합니다.상태 표시줄-window 개체 클래스의 프로그램 -포함 몇 가지 "창." 각 창에 정보를 표시 하는 데 사용할 수 있는 상태 표시줄의 사각형 영역입니다.예를 들어, 많은 응용 프로그램이 오른쪽 창에 CAPS LOCK, NUM LOCK 및 기타 키의 상태를 표시합니다.응용 프로그램에는 종종 "메시지 창"이 라고도 하는 정보 제공 용 텍스트 왼쪽 창 (창 0) 표시 예를 들어, 기본 MFC 상태 표시줄 메시지 창을 사용 하 여 현재 선택한 메뉴 항목이 나 도구 모음 단추를 설명 하는 문자열을 표시 합니다.그림에서 상태 표시줄 MFC 응용 프로그램 마법사로 만든 응용 프로그램에서 상태 표시줄을 표시 합니다.
기본적으로 MFC 않습니다 사용 하지는 CStatusBar 의 창을 만들면 창.창을 활성화 하려면 사용 해야 해당 ON_UPDATE_COMMAND_UI 매크로 상태에 따라 각 창에 대 한 막대 및 창 업데이트 합니다.창을 보내지 않음 때문에 WM_COMMAND 메시지 (도구 모음 단추 처럼 되지), 코드를 수동으로 입력 해야 합니다.
예를 들어, 한 창 것으로 가정 ID_INDICATOR_PAGE 를 명령의 식별자로 문서에서 현재 페이지 번호를 포함 합니다.다음은 상태 표시줄에 새 창을 만드는 방법을 설명 합니다.
새 창을 만들려면
창의 명령 ID를 정의 합니다.
에 보기 메뉴를 클릭 자원 보기.프로젝트 리소스를 마우스 오른쪽 단추로 클릭 하 고 클릭 리소스 기호.리소스 기호 대화 상자에서 클릭 New.명령 ID 이름을 입력 합니다: 예를 들어, ID_INDICATOR_PAGE.ID 값을 지정 하거나 리소스 기호 대화 상자에서 제시한 값을 적용 합니다.예를 들어, ID_INDICATOR_PAGE, 기본값을 사용 합니다.리소스 기호 대화 상자를 닫습니다.
창에 표시 하는 기본 문자열을 정의 합니다.
열린 리소스 뷰를 두 번 문자열 테이블 응용 프로그램 리소스 종류를 나열 하는 창에서입니다.로 문자열 테이블 편집기 열기 선택 새 문자열 에서 삽입 메뉴.명령 ID를 창에서 문자열 속성 창에서 선택 (예를 들어, ID_INDICATOR_PAGE) 및 "페이지"와 같은 기본 문자열 값을 입력 합니다.문자열 편집기를 닫습니다.(기본 문자열 컴파일러 오류가 발생 하지 않도록 해야 합니다.)
추가 창에는 지표 배열.
한 파일에 있습니다.CPP를 찾기는 지표 배열.이 배열의 모든 순서는 왼쪽에서 오른쪽 상태 표시줄 표시기에 대 한 명령 id가 나열 됩니다.배열의 해당 지점에서 여기에 나와 있는 것 처럼 해당 창 명령 ID를 입력 ID_INDICATOR_PAGE:
static UINT indicators[] = { ID_SEPARATOR, // status line indicator ID_INDICATOR_CAPS, ID_INDICATOR_NUM, ID_INDICATOR_SCRL, ID_INDICATOR_PAGE, };
창에 텍스트를 표시 하는 것이 좋으며 호출 하는 것은 SetText 클래스의 멤버 함수 CCmdUI 업데이트 처리기 함수는 창에 대 한.예를 들어, integer 변수를 설정 하려면 원하는 수 있습니다 m_nPage 의 현재 페이지 번호 및 사용을 포함 SetText 해당 번호의 문자열 버전을의 창 텍스트를 설정 합니다.
[!참고]
SetText 접근 방식을 권장 합니다.약간 낮은 수준에서이 작업을 호출 하 여 수행 하는 것이 가능은 CStatusBar 멤버 함수 SetPaneText.경우에 업데이트 처리기가 필요 합니다.처리기가 없는 창, MFC 자동으로 창에서 내용을 지우고 비활성화 됩니다.
다음 절차는 업데이트 처리기 함수를 사용 하 여 텍스트 창에 표시 하는 방법을 보여 줍니다.
텍스트를 표시 하는 창을 만들려면
명령에 대 한 명령 업데이트 처리기를 추가 합니다.
여기에 나와 있는 것 처럼 처리기를 프로토타입을 수동으로 추가 ID_INDICATOR_PAGE (에 한 합니다.H):
afx_msg void OnUpdatePage(CCmdUI *pCmdUI);
적절 한에.CPP 파일을 여기에 나와 있는 것 처럼 처리기의 정의 추가 ID_INDICATOR_PAGE (에 한 합니다.CPP):
void CMainFrame::OnUpdatePage(CCmdUI *pCmdUI) { pCmdUI->Enable(); CString strPage; strPage.Format(_T("Page %d"), m_nPage); pCmdUI->SetText(strPage); }
이 처리기의 마지막 세 줄 텍스트를 표시 하는 코드입니다.
적절 한 메시지 맵에 추가 ON_UPDATE_COMMAND_UI 여기에 나와 있는 것 처럼 매크로 ID_INDICATOR_PAGE (에 한 합니다.CPP):
ON_UPDATE_COMMAND_UI(ID_INDICATOR_PAGE, &CMainFrame::OnUpdatePage)
값을 정의 하면 해당 m_nPage 멤버 변수 (클래스의 CMainFrame),이 방법은 페이지 번호 창에서 유휴 처리 하는 동안 동일한 방식으로 응용 프로그램에서 다른 표시기를 업데이트를 하면 됩니다.경우 m_nPage 변경, 표시 변경 내용을 다음 유휴 루프 동안.