본문 바로가기

공부/MFC

Visual C++ 2008 MFC Chapter 10 메뉴~ -2

아까의 코드에서

헤더파일 public 부분에

BOOL m_bRunning;

으로 플래그를 추가해주고

cpp에 가서

===================================================

CMainFrame::CMainFrame()
{
// TODO: 여기에 멤버 초기화 코드를 추가합니다.
m_bRunning = FALSE; //초기화

}
===================================================
처럼 추가수정을 하여 초기화를 해준뒤



===================================================
 void CMainFrame::OnMenuStart()
{
m_bRunning = TRUE; //실행 중이라는 의미로 플래그를 TRUE 로 세트.
AfxMessageBox(_T("시작 메뉴를 선택하였습니다."));
}

void CMainFrame::OnMenuStop()
{
m_bRunning = FALSE; //실행이 종료되었다는 의미로 플래그를 FALSE 로 세트.
AfxMessageBox(_T("종료 메뉴를 선택하였습니다."));
}

===================================================
처럼 코딩을 해줌.

이러면 이제 메뉴를 누를 때마다 플래그가 바뀌게 된다..

하지만 적용을 시키려면. 한가지 작업을 더 해주어야 한다. 


그게 무엇이냐 하면 스크린샷을 보자. 

 
이렇게 추가 한 뒤 다음과 같이 코딩을 한다.

물론 종료 메뉴도 같은 방식으로 추가해준다.[그냥 코드만 입력하는게 아니고 따로 똑같은 방식으로 추가하여 코딩해야함을 잊으면 안된다.

void CMainFrame::OnUpdateMenuStart(CCmdUI *pCmdUI)
{
pCmdUI->Enable(!m_bRunning);//이미 실행중이면 ! 연산을 통해 FALSE가 되므로 시작 메뉴가 비활성화 됨

}

void CMainFrame::OnUpdateMenuStop(CCmdUI *pCmdUI)
{

pCmdUI->Enable(m_bRunning);//이미 실행 중이므로 종료 메뉴를 선택할 수 있도록 활성화 함.

}
 

 
이제 빌드를 해보면 교대로 활성화 되는 두 메뉴를 볼 수 있다. 

 
다음은 도구모음의 아이콘을 추가하는 방법을 스크린샷 한장으로 요약한 것이다.





리소스 뷰 에서 툴 바 선택 -> 가장 우측의 아이콘 클릭 후 그리기 -> 해당 아이콘 클릭 상태에서 아이디 변경.[변경 안한채로 쓰려면 자동으로 입력된 번호로 써야만 함.

아 그리고 색칠은 검정색으로 할 경우에 화면상 안나오기도 하는 것을 주의. 

제대로 했다면 다음과 같은 출력화면이 나옴.

 



다른 도구모음 버튼처럼 상태 표시줄의 해석 추가와 아이콘 이름 이 나오게 하려면 메뉴 리소스를 편집해주어야 한다.
 
리소스 뷰 에서 다시 Menu로 간 뒤 메뉴 화면을열고 다음과 같이 속성에서 Prompt를 수정해준다.

 
마찬가지로 종료 메뉴에도 적용 시킬 수 있다.

다시 빌드를 해서 출력화면을 보면 다음과 같다.

 
여기까지 진행한 코드 업로드.