본문 바로가기

메뉴

그림판 만들기 프로젝트. 1. 외형구도. 메뉴와 도구 모음 간의 연동. 2. 버튼 클릭시 다른 메뉴 버튼 비활성화 처리를 IF문으로 해보려다가 실패. 3. 타 프로그램의 소스를 보며 IF문이 아닌 int값과 switch 문 등을 이용하는것을 발견. 목표를 그대로 따라하여 작성하는 식으로 공부할 예정. 완성화면은 저러함. 보다시피 지금 목표로 삼는 예제도 기본적 MFC 프로그램 에다가 덧붙여서 만든것을 알 수 있음. [도움말 이후에 메뉴를 넣었다던가. 하는 것들.] 목표 파일 업로드.[웹에거 검색한 것. 비영리 목적으로 퍼왔으니 저작권 문제는 없다고 봄..] 그나저나 매번 느끼는거지만 무료로 배포하려고 블로그에 올리는 사람들이 있는 반면 만얼마~2만 얼마까지 돈받고 파는 소스도 있음. 개인적인 생각으론 전혀 돈내고 살 필요가 없다.. 더보기
Visual C++ 2008 MFC Chapter 10 메뉴~ - 4 지금까지 사용한 메뉴 코드는 내부적으로 TrackPopupMenu()함수를 가지고 만들어진 것이라고 한다. 이 함수의 원형은 다음과 같다. BOOL TrackPopupMenu(UINT nFlags, //메뉴 윈도우의 위치, 에니메이션효과 등 동작특성을 결정 int x, int y, //출력할 좌표 **반드시 스크린 기준 CWnd* pWnd, // WM_COMMAND 메시지를 전송할 윈도우 객체의 주소. LPCRECT lpRect = NULL //이값은 현재 사용하지않음. ); 다음으로는 속성값들을 정리한 내용이다 TPM_CENTERALIGN 지정한 위치의 중앙에 오게한다. TPM_LEFTALIGN 지정한 위치의 좌측에 정렬 TPM_RIGHTALIGN 지정한 위치의 오른쪽에 정렬 TPM_BOTTOMALIG.. 더보기
Visual C++ 2008 MFC Chapter 10 메뉴~ -3 다른 메뉴를 만들듯이 일시 정지 메뉴를 만들고 일시정지 메뉴를 만들기 전에 구분선을 하나 넣어본다.[생성시에 메뉴에 다 한글로 써있으니 설명이 필요치 않다.] m_bRunning 을 넣었듯이 m_bPause 도 넣어준다. 역시 마찬가지로 시작 종료 메뉴를 만든것처럼 void CMainFrame::OnMenuPause()와 void CMainFrame::OnUpdateMenuPause(CCmdUI *pCmdUI) 를 추가하고 다음과 같이 입력한다. ========================================================== void CMainFrame::OnMenuPause() { if(m_bPause)AfxMessageBox(_T("다시 시작합니다.")); elseAfxMes.. 더보기
Visual C++ 2008 MFC Chapter 10 메뉴~ -2 아까의 코드에서 헤더파일 public 부분에 BOOL m_bRunning; 으로 플래그를 추가해주고 cpp에 가서 =================================================== CMainFrame::CMainFrame() { // TODO: 여기에 멤버 초기화 코드를 추가합니다. m_bRunning = FALSE; //초기화 } =================================================== 처럼 추가수정을 하여 초기화를 해준뒤 =================================================== void CMainFrame::OnMenuStart() { m_bRunning = TRUE;//실행 중이라는 의미로 플래그를 T.. 더보기
Visual C++ 2008 MFC Chapter 10 메뉴/바로 가기 키/도구 모음/상태 표시줄 내가 생각해도 챕터 제목 참.. 뭐 직설적이긴 하네. 이번에는 가장 흔한 HelloWorld 예제가 쓰인다. 문제는 프로젝트명을 소문자로 적었다는거. 으. 소문자 하면 졸백같다는 이야기가 뼈저리게 느껴진다. 책에서 참조하는 HelloWorld 의 코드 LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { int wmId, wmEvent; PAINTSTRUCT ps; HDC hdc; switch (message) {//여기부터 case WM_COMMAND: wmId = LOWORD(wParam); wmEvent = HIWORD(wParam);//여기까지 굵은 글씨. // 메뉴의 선택 영역을 구문 분석합니다. swi.. 더보기