본문 바로가기

공부/MFC

Visual C++ 2008 MFC Chapter 6 마우스 입력 - 2 더블클릭에 따른 입력이 잘 이루어지는지 디버그와 중단점을 이용해 알아보는 코드 1. 생성은 지금까지 해왔듯 single document [단일문서] MFC표준, 비쥬얼 스타일 및 색- window원형 / 기본 mfc사용은 공유 dll에서 사용 으로 설정하고 모두 넘긴 후, 클래식 메뉴 사용 체크, 도킹 가능한 클래식 도구모음 사용 체크, 나머지 모두 넘김. 입니다. 뭐 책에 나온 내용이지만. 적어둡니다. 2. 핸들러 함수를 등록합니다. 이런식으로. 설정하면 자동으로 코딩이 진행됩니다. 그리고 이런식으로 추적점을 삽입해줍니다.[중단점->추적점 으로 합니다. 중단점 ㄴㄴ] 그리고 이를 디버깅 해서 보면서 클릭, 더블클릭 등을 해보면 더블클릭 시에는 두번째 down이 더블클릭 으로 바뀜을 알 수 있습니다. 더보기
Visual C++ 2008 MFC Chapter 6 마우스 입력 - 1 마우스 입력 관련 챕터. MouseMsgView.h 의 코드에서 public에 마지막 코드 추가 // MouseMsgView.h : CMouseMsgView 클래스의 인터페이스 // #pragma once class CMouseMsgView : public CView { protected: // serialization에서만 만들어집니다. CMouseMsgView(); DECLARE_DYNCREATE(CMouseMsgView) // 특성입니다. public: CMouseMsgDoc* GetDocument() const; // 작업입니다. public: CPoint m_ptMouse; //마우스 포인터의 좌표 우하단 화면에서의 출력 선택 을 하면 휠의 사용방향에 따라 +120이나 -120 이 출력됨을 알 .. 더보기
Visual C++ 2008 MFC Chapter 5 의 실습예제 ============================= 본 코드는 실습예제를 나름대로 짜본 코드로 책 원문이나 책의 저자가 가지고 있는 해답본은 없습니다.[저자가 카페를 통해 답안지는 없다 라고 했습니다.] ============================= 155페이지의 1번과 2번 문제 에 대한 코드는 한 프로젝트, 한 함수 에 코딩이 가능하므로 짜둔 코드를 그대로 긁어보았습니다. 이외의 코드는 챕터 5의 본문과 같습니다. 1번문제의 코딩 힌트는 앞서 적었던 left 나 right 처럼 VK_UP 과 DOWN을 써주고 그에 맞는 y값의 연산을 해주는 것이고. 2번문제의 코딩 힌트는 컨트롤 키 는 시스템 키 가 아니라는 것 과 시스템 키 ALT와 SPACE키를 같이 눌러서 메시지를 출력하는 코드를 그대.. 더보기
Visual C++ 2008 MFC Chapter 5 파트 1 챕터 5 의 본문 내용 관련 코드에서의 부가적 주석. 키입력[화살표 좌우] 시 자식 윈도우 를 이동시키는 코드 void CKeyMoveView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) { // TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다. //여기부터 입력한 코드 CPoint ptChild;// 차일드 윈도우의 좌표 CRect Rect;//차일드 윈도우의 좌표 및 크기 //차일드 윈도우의 두 좌표 정보(스크린 기준)을 알아온다. //(두번 말하는 듯 하지만...자식 윈도우의 현재 위치를 다시 구하는 함수) m_wndChild.GetWindowRect(&Rect); ptChild.x = Rect.left; ptChild... 더보기
Visual C++ 2008 MFC Chapter 3 일부 내용만 기록되어 있는 글. 책 내용대로 짜는 코드. 아래 코드의 주석대로 행동하여 코드를 자동으로 추가시킬 수 있다. // CHelloSdiDoc 명령 //추가방법 ->CHelloSdiDoc 클래스뷰 -> 속성 -> 오버로딩- > OnOpenDocument 속성에 OnOpenDocument 추가. 시 아래 코드가 자동으로 입력되며 //AfxMessageBox(TEXT("사용자가 문서를 열었습니다.")); 를 리턴 코드 앞부분에 적어주면 된다. BOOL CHelloSdiDoc::OnOpenDocument(LPCTSTR lpszPathName) { if (!CDocument::OnOpenDocument(lpszPathName)) return FALSE; AfxMessageBox(TEXT("사용자가 문서.. 더보기