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문 안쪽에 넣어서 값을 변경해주면
다른 대화상자 생성조건으로도 메뉴의 체크를 바꿀 수 있다.
'공부 > MFC' 카테고리의 다른 글
BEGIN_MESSAGE_MAP (2) | 2012.06.21 |
---|---|
error LNK2001 : 구조체의 주소를 외부 파일에서도 참조할 시 뜨는 에러. (0) | 2012.01.27 |
MFC 프로그래밍에서 printf 함수를 출력하는 방법 (2) | 2012.01.05 |
error C2440: '=' : 'const char [23]'에서 'LPCWSTR'(으)로 변환할 수 없습니다. (0) | 2011.12.22 |
대화상자 로 경로 찾기 (0) | 2011.12.21 |