Вторник, 19 ноября 2019

mfc ondraw 예제

47

이 모듈의 두 가지 예 중 첫 번째 예제는 매우 간단한 문서 보기 상호 작용을 보여 주며 있습니다. CDocument에서 파생된 CMymfc15Doc 문서 클래스는 포함된 단일 CStudent 개체를 허용합니다. CStudent 클래스는 CString 이름과 정수 등급으로 구성된 학생 레코드를 나타냅니다. CMymfc15View 뷰 클래스는 CFormView에서 파생됩니다. 이름과 성적에 대한 편집 컨트롤이 있는 학생 레코드의 시각적 표현입니다. 기본 Enter 푸시 버튼은 편집 컨트롤의 데이터로 문서를 업데이트합니다. 그림 1은 MYMFC15 프로그램 창을 보여줍니다. 프로그램 외부에서 시작된 비트맵을 표시하는 예제 프로그램을 보았습니다. 이제 화면에서 부드러운 동작을 지원하기 위해 자체 비트맵을 생성하는 예제 프로그램이 표시됩니다. 원칙은 간단합니다 : 선택한 비트맵으로 메모리 장치 컨텍스트를 그린 다음 비트맵을 화면에 zap합니다. 비트맵1 예제의 디스플레이 매핑 모드가 MM_TEXT인 경우 각 비트맵 픽셀은 표시 픽셀에 매핑되고 비트맵은 완벽하게 맞습니다. 매핑 모드가 MM_LOENGLISH인 경우 비트맵 크기는 0.54×0.96인치 또는 Windows 95의 경우 52×92 픽셀이며 GDI는 비트맵에 맞게 만들기 위해 약간의 크런치를 수행해야 합니다. 따라서 MM_LOENGLISH 매핑 모드에서비트맵이 좋지 않을 수 있습니다.

CDC::SetStretchBltMode의 매개 변수 값을 사용 하 여 COLORONCOLOR 축소 된 비트 맵 을 더 멋지게 만들 것입니다. 뷰에서 그리기 코드는 먼저 문서에 대한 포인터를 검색한 다음 장치 컨텍스트를 통해 그리기 호출을 합니다. 다음 간단한 OnDraw 예제는 프로세스를 보여 줍니다: 다음은 텍스트 편집기에서 볼 때 RC(리소스 스크립트) 파일의 예제 항목입니다. CFormView를 선택하면 AppWizard가 올바른 스타일 속성 집합을 통해 빈 대화 상자를 생성합니다. 다음 단계는 ClassWizard를 사용하여 컨트롤 알림 메시지 처리기, 명령 메시지 처리기 및 명령 UI 처리기를 업데이트하는 것입니다. (그림 16-2 이후의 예제 단계는 수행할 작업을 보여 준다). 데이터 멤버 및 유효성 검사 기준을 정의할 수도 있습니다. 이 예제에서는 뷰의 중심에 문서에서 얻는 문자열을 인쇄합니다. OnDraw 호출이 화면 그리기용인 경우 pDC에 전달된 CDC 개체는 생성자가 이미 BeginPaint라고 하는 CPaintDC입니다. 그리기 함수에 대한 호출은 장치 컨텍스트 포인터를 통해 이루어집니다.

장치 컨텍스트 및 그리기 호출에 대한 자세한 내용은 MFC 참조 및 창 개체 작업에서 클래스 CDC를 참조하십시오. 두 매크로가 함께 작동하여 파생된 CObject 클래스에 MFC 라이브러리 런타임 클래스 코드를 포함합니다.