프로그래밍/MFC

MFC 메뉴 항목 갱신(상태 변경)

에어버스 2016. 6. 21. 12:31

- 명령 갱신 핸들러 (Command Update Handler)

메뉴 항목 각각의 상태를 갱신하기 위한 함수 - 툴바, 상태바 상태를 바꿀때도 사용

 

해당 메뉴가 열리기 전에 MFC에서 자동으로 각 메뉴 항목에 대한 명령 갱신 핸들러를 호출하여 메뉴 항목의 상태를 바꾸어 준다.

아래 그림과 같이 메시지에서 UPDATE_COMMAND_UI 를 선택해야 한다.

아래 코드는 http://petra.tistory.com/913 (코드3)에서 이어지며, 바탕색에 따라 해당 메뉴 항목에 체크 표를 해준다.

1
2
3
4
5
6
7
8
9
10
11
BEGIN_MESSAGE_MAP(CMFCApplication4View, CView)
...
    ON_UPDATE_COMMAND_UI(ID_RED, &CMFCApplication4View::OnUpdateRed)
    ON_UPDATE_COMMAND_UI(ID_GREEN, &CMFCApplication4View::OnUpdateGreen)
    ON_UPDATE_COMMAND_UI(ID_BLUE, &CMFCApplication4View::OnUpdateBlue)
END_MESSAGE_MAP()
 
void CMFCApplication4View::OnUpdateRed(CCmdUI *pCmdUI)
{
    pCmdUI->SetCheck(m_color == RGB(25500));
}
cs

 

<CCmdUI 클래스 멤버함수들>

멤버함수 

의미 

사용 예 

 Enable(BOOL)  

 활성화 상태 변경 

 pCmdUI->Enable(b_DrawMode) 

 SetCheck(BOOL)

 체크 상태 변경 

 pCmdUI->SetCheck(m_color == RGB(255, 0, 0))

 SetRadio(BOOL)

 라디오 표시 상태 변경 

 pCmdUI->SetRadio(m_color == RGB(255, 0, 0)) 

 SetText(LPCTSTR)

 문자열 변경 

 pCmdUI->SetText(L"Light On");