최상단 광고

2012년 4월 11일 수요일

CRectTracker



CRectTracker ?
선택영역에 대한 사용자 인터페이스를 쉽게 만들 수 있게 해줍니다.
사용법:
선택영역의 관리는 뷰(VIEW)에서 관리하는 것이 아니라 Document에서 관리하는 것이 좋습니다.
Class CTrackerDoc: public CDocument
{
Public:
CRectTracker m_tracker;
};
CRectTracker의 멤버 변수와 의미
멤버변수 의미
m_rect 현재 영역을 나타내는 CRect형 변수.
m_sizeMin 트래커의 최소 크기를 나타내는 CSize형 변수.수. 최소 크기 보다 작은 트래커는화면에 표시되지 않습니다.
m_nHandleSize 트래커의 크기를 조절하는 핸들의 크기.
M_nStyle 트래커 스타일
TrackerStyle에 설정할 수 있는 속성
solidLine 선택 영역을 표시하는 선 속성을 실선 또는 점선으로 설정dottedLine 할 수 있습니다. 두 가지 속성 중 어느 것도 주지 않 으 으면 선이 그려지지 않습니다
resizeInside 트래커의 크기를 조절하는 핸들을 선택 영역의 안쪽에 표 시할지, 바깥쪽에 표
resizeOutsize 시 할지를 설정합니다.
hatchedBoarder hatchBoard는 선택 영역의 경계선 부분에 빗금을 그려
주고, hatchInside는 선택영역의 안쪽에 빗금을 그려줍니
hatchInside 다.
트래커의 기본동작
-마우스를 드래그하여 새로운 영역을 선택하는 기능: 마우스를 드래그 하여 새로운 영역을 선택하려면, 마우스 버튼이 클릭 되어 WM_LBUTTONDOWN 메시지가 발생했을 때 CRectTracker 클래스의 멤버 함수인 TrackRybberBand를 호출 하면 됩니다. 이 함수는 WM_LBUTTONUP 메시지가 발생할 때까지 마우스 메시지를 직접 처리하면서 영역을 선택하도록 해 줍니다.
-이미 선택되어 있는 영역을 변형시키는 기능(이동, 크기 조절): 이미 선택되어 있는 영역을 변형시키는 방법에는 두 가지가 있습니다. 트래커의 내부에서 마우스를 클릭한 후 드래그 하여 트래커를 이동시킬 수 있고, 트래커의 핸들을 클릭한 후 드래그 하여 트래커의 크기를 조절할 수 있습니다. 이 두 가지 동작이 모두 CRectTracker 클래스의 멤버 함수인 Track 함수로 처리 됩니다. 마우스 버튼이 클릭 되어 WM_LBUTTONDOWN 메시지가 발생 했을 때 Track 함수를 호출하면, 트래커는 마우스가 어느 부분에서 클릭 되었는지를 스스로 판단하고, WM_LBUTTONUP메시지가 발생할 때까지 마우스 메시지를 직접 처리하여 선택 영역을 변형시켜 줍니다.

댓글 없음: