공부/MFC
메뉴의 체크표시 변환 C++, MFC
졸가메
2012. 1. 16. 10:47
void CMainFrame::OnUpdateWindow3(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if(m_nWindowNum==3)
pCmdUI->SetCheck(TRUE);
else
pCmdUI->SetCheck(FALSE);
}
구글에서 검색해보면 대부분 이런식으로
SetCheck 를 사용하는 것들에 대한 글이 대다수이다.
하지만 이 방식은 대화상자를 특정 방식으로 생성했을 때에만 작동하며
그 이외에는 작동하지 않는다.
이럴때에
CMenu *hMenu = GetMenu();
if(hMenu->GetMenuState(해당 메뉴의 아이디, MF_BYCOMMAND) != MF_CHECKED){
hMenu->CheckMenuItem( 해당 메뉴의 아이디 , MF_CHECKED);
}
else{
hMenu->CheckMenuItem( 해당 메뉴의 아이디 , MF_UNCHECKED);
}
처럼 CMenu 를 사용하여 메뉴의 체크 유무를 바꿔주고
메뉴에 관련된 변수들을 if문 안쪽에 넣어서 값을 변경해주면
다른 대화상자 생성조건으로도 메뉴의 체크를 바꿀 수 있다.