ptinrect 예제

모든 메시지 큐가 비어 있고 Windows가 키보드 또는 마우스 입력을 기다리는 동안 Windows에는 “데드 타임”이 많이 있어야 합니다. 메시지가 프로그램의 메시지 큐에 추가될 때만 제어를 포기하고, 그 죽은 시간 동안 어떻게든 제어하고 사각형을 그릴 수 없습니까? 이것이 PeekMessage 기능의 목적 중 하나입니다. PeekMessage 호출의 한 예는 다음과 같습니다: 장치 컨텍스트의 매핑 모드(원본)를 설정하면 대부분의 CDC 멤버 함수에 논리 좌표 매개 변수를 사용할 수 있습니다. 예를 들어 Windows 마우스 메시지(OnLButtonDown()의 포인트 매개 변수)에서 마우스 커서 좌표를 받는 경우 장치 좌표를 다루고 있습니다. 다른 많은 MFC 함수, 특히 클래스 CRect의 멤버 함수는 장치 좌표에서만 올바르게 작동합니다. CRect 산술 함수는 기본 Win32 RECT 산술 함수를 사용하며, 오른쪽이 왼쪽보다 크고 아래가 위쪽보다 크다고 가정합니다. 예를 들어 MM_HIMETRIC 좌표의 사각형(0, 0, 1000, -1000)은 맨 아래보다 낮으며 프로그램이 먼저 CRect::P:Normalizerect을 호출하지 않는 한 CRect:tInRect와 같은 함수에서 처리할 수 없습니다. 1000, 1000, 0). 마지막 매핑 모드인 MM_TWIPS는 프린터와 함께 가장 자주 사용됩니다. 하나의 트와이프 유닛은 1/20 포인트입니다. 포인트는 유형 측정 단위입니다. 윈도우에서 그것은 정확히 1/72 인치와 같습니다.

매핑 모드가 MM_TWIPS이고 12포인트 유형과 같은 경우 문자 높이를 12 × 20 또는 240으로 설정합니다. 예: PtInRect() : 지역이 클리핑에서 역할을 할 수도 있습니다. 무효화Rect 함수는 디스플레이의 직사각형 영역을 무효화하고 WM_PAINT 메시지를 생성합니다. 예를 들어 InvalidateRect 함수를 사용하여 클라이언트 영역을 지우고 WM_PAINT 메시지를 생성할 수 있습니다. Windows는 장치 컨텍스트와 연결할 수 있는 여러 가지 다른 매핑 모드 또는 좌표계를 제공합니다. 현재 매핑 모드의 좌표를 논리 좌표라고 합니다. 예를 들어 MM_HIMETRIC 매핑 모드를 할당하는 경우 논리 단위는 1픽셀대신 1/100mm(mm)입니다. MM_HIMETRIC 매핑 모드에서 y축은 MM_TEXT 모드에서와 반대 방향으로 실행됩니다. 따라서 4x4cm 사각형은 논리적 좌표로 그려집니다: 예를 들어 lpRectSrc1이 (10,10, 100,100) 및 lpRectSrc2(50,50, 150,150)인 경우 함수가 반환될 때 lpRectSrc1이 가리키는 사각형은 변경되지 않습니다.

Share on Google+Share on FacebookTweet about this on Twitter
error: Садржај је заштићен !!