MFC/윈도우 프로그래밍 18

MFC 윈도우 프로그래밍 7장 연습문제(9~16)

윈도우 프로그래밍 Visual C++ 2010 MFC Programming(김선우, 신화서 저) 7장 연습문제입니다.저번에 이어 나머지 연습문제를 풀어봤습니다. [7-9]// C연습문제79Doc serialization//InputSaveLoad 예제의 CInputSaveLoadDoc::Serialize() 함수에서 직렬화, 즉//> 연산자 대신 CArchive 클래스의 함수를 사용하여 데이터를 저장하고 불러오도록//예제를 수정하시오void C연습문제79Doc::Serialize(CArchive& ar){ if (ar.IsStoring()) { // TODO: 여기에 저장 코드를 추가합니다. //ar m_bItalic >> m_bUnderline; ar.Read(&m_bItalic, sizeof(m_bI..

MFC 윈도우 프로그래밍 7장 연습문제(1~8)

윈도우 프로그래밍 Visual C++ 2010 MFC Programming(김선우, 신화서 저) 7장 연습문제입니다.우선 1~8번 문제까지 풀었습니다. [7-1]// C연습문제71Doc serialization//[파일]-[열기..] 메뉴에서 선택한 파일의 경로를 메시지 상자로 보여주도록//FileIOTest 예제를 수정하시오.void C연습문제71Doc::Serialize(CArchive& ar){ if (ar.IsStoring()) { // TODO: 여기에 저장 코드를 추가합니다. } else { // TODO: 여기에 로딩 코드를 추가합니다. CFile *pFile = ar.GetFile(); if (pFile) { ::AfxMessageBox(pFile->GetFilePath()); } } } ..

MFC 윈도우 프로그래밍 6장 연습문제(9~16)

윈도우 프로그래밍 Visual C++ 2010 MFC Programming(김선우, 신화서 저) 6장 연습문제입니다.저번에 이어 나머지 연습문제를 풀어봤습니다. [6-9]//ColorSelect 예제에서 툴바를 왼쪽 테두리에 세로로 배치하고, //항상 윈도우 왼쪽에 위치하도록 예제를 수정하시오int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct){ if (CFrameWnd::OnCreate(lpCreateStruct) == -1) return -1; // 프레임의 클라이언트 영역을 차지하는 뷰를 만듭니다. if (!m_wndView.Create(NULL, NULL, AFX_WS_DEFAULT_VIEW, CRect(0, 0, 0, 0), this, AFX_IDW..

MFC 윈도우 프로그래밍 6장 연습문제(1~8)

윈도우 프로그래밍 Visual C++ 2010 MFC Programming(김선우, 신화서 저) 6장 연습문제입니다.우선 1~5번 문제까지 풀었습니다.(2018년 4월 6일 02:17)확실히 챕터를 진행할수록 난이도가 엄청 올라가네요. 진짜 1을 가리키고 100을 요구하는 책입니다. *6~8번 문제 업로드(2018년 4월 7일 01:03) [6-1]//MenuDesign 예제를 다음과 같이 수정하시오//수학 함수(&M) 메뉴 옆에 메뉴를 추가하는데,//메뉴 이름은 IDR_MAINFRAME 문자열 리소스를 읽어 사용하고,//'ID'는 ID_APP_ABOUT을 사용한다int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct){ if (CFrameWnd::OnCreat..

MFC 윈도우 프로그래밍 5장 심화문제

윈도우 프로그래밍 Visual C++ 2010 MFC Programming(김선우, 신화서 저) 5장 심화문제입니다.2번 3번은 https://blog.naver.com/mark1007/220988574718 참고했습니다. [5-1] // ChildView.h: CChildView 클래스의 인터페이스// #pragma once // CChildView 창 class CChildView : public CWnd{// 생성입니다.public: CChildView(); // 특성입니다.public: BOOL m_bDrawMode; //그리기 작업이 진행중임을 나타낸다 int m_x1, m_y1, m_x2, m_y2; //타원에 외접하는 직사각형의 좌상단/우하단 좌표// 작업입니다.public: // 재정의입니..

MFC 윈도우 프로그래밍 5장 연습문제(9~16)

윈도우 프로그래밍 Visual C++ 2010 MFC Programming(김선우, 신화서 저) 5장 연습문제입니다.저번에 이어 나머지 연습문제를 풀어봤습니다. [5-9] // ChildView.h: CChildView 클래스의 인터페이스// #pragma once // CChildView 창 class CChildView : public CWnd{// 생성입니다.public: CChildView(); // 특성입니다.public: int m_xPos, m_yPos; //도형의 현재 위치 int m_xMax, m_yMax; //클라이언트 영역의 크기 BOOL m_bFill; //도형의 내부를 채울지 여부// 작업입니다.public: // 재정의입니다. protected: virtual BOOL PreCr..

MFC 윈도우 프로그래밍 5장 연습문제(1~8)

윈도우 프로그래밍 Visual C++ 2010 MFC Programming(김선우, 신화서 저) 5장 연습문제입니다.우선 1~8번 문제까지 풀어봤습니다. [5-1] // ChildView.h: CChildView 클래스의 인터페이스// #pragma once // CChildView 창 class CChildView : public CWnd{// 생성입니다.public: CChildView(); // 특성입니다.public: BOOL m_bDrawMode; //그리기 작업이 진행 중 int m_x1, m_y1, m_x2, m_y2; //타원에 외접하는 직사각형의 좌상단/우하단 좌표 CList list;// 작업입니다.public: // 재정의입니다. protected: virtual BOOL PreCre..

MFC 윈도우 프로그래밍 4장 심화문제

윈도우 프로그래밍 Visual C++ 2010 MFC Programming(김선우, 신화서 저) 4장 심화문제입니다.https://blog.naver.com/mark1007/220988574718 참고했습니다. [4-1]//클라이언트 영역에 다음과 같이 표를 출력하도록 DrawLines 예제를 수정하시오void CChildView::OnPaint() { CPaintDC dc(this); // 그리기를 위한 디바이스 컨텍스트입니다. // TODO: 여기에 메시지 처리기 코드를 추가합니다. POINT ptArr[][8] = { {{10, 10}, {90, 10}, {140, 10}, {190, 10}, {240, 10}, {290, 10}, {340, 10}, {390, 10} }, {{10, 40}, {9..

MFC 윈도우 프로그래밍 4장 연습문제(9~16)

윈도우 프로그래밍 Visual C++ 2010 MFC Programming(김선우, 신화서 저) 4장 연습문제입니다.저번에 이어 나머지 연습문제를 풀어봤습니다. *2018년 3월 29일 부연설명사실 연습문제를 풀 당시 Invalidate()의 중요성을 파악하지 못한 상태였습니다.Invalidate()를 이용하면 훨씬 간단하게 풀 수 있는 문제들이 많습니다. [4-9]//DrawTexts 예제에서 첫 번째 문장은 밑줄, 두 번째 문장은 이탤릭,//세 번째 문장은 볼드로 출력되도록 예제를 수정하시오void CChildView::OnPaint() { CPaintDC dc(this); // 그리기를 위한 디바이스 컨텍스트입니다. // TODO: 여기에 메시지 처리기 코드를 추가합니다. CRect rect; Ge..

MFC 윈도우 프로그래밍 4장 연습문제(1~8)

윈도우 프로그래밍 Visual C++ 2010 MFC Programming(김선우, 신화서 저) 4장 연습문제입니다.우선 1~8번 문제까지 풀어봤습니다. [4-1]//직사각형과 타원 모두 CRect 객체를 사용하도록 PaintDC 예제를 수정하시오void CChildView::OnPaint() { CPaintDC dc(this); // 그리기를 위한 디바이스 컨텍스트입니다. // TODO: 여기에 메시지 처리기 코드를 추가합니다. CRect rect1(0, 0, 200, 100), rect2(200, 100, 500, 200); dc.Rectangle(&rect1); dc.Ellipse(&rect2); // 그리기 메시지에 대해서는 CWnd::OnPaint()를 호출하지 마십시오.} [4-2]#pragm..