현재 위치 도구 설명 구현 방법

현재 위치 도구 설명은 잘린 개체에 대한 텍스트 문자열을 표시하는 데 사용됩니다. 자세한 내용은 도구 설명 컨트롤 정보를 참조하세요.

일반 도구 설명과 현재 위치 도구 설명의 차이는 위치 지정입니다. 기본적으로 마우스 포인터가 연결된 도구 설명이 있는 영역 위로 마우스 포인터를 가져가면 영역에서 가까운 곳에 도구 설명이 표시됩니다. 그러나 도구 설명은 창이며 SetWindowPos를 호출하여 선택한 위치에 배치할 수 있습니다. 현재 위치 도구 설명을 만드는 것은 텍스트 문자열을 오버레이할 수 있도록 도구 설명 창을 배치해야 합니다.

알아야 하는 작업

기술

필수 구성 요소

  • C/C++
  • Windows 사용자 인터페이스 프로그래밍

지침

현재 위치 도구 설명 배치

현재 위치 도구 설명을 배치할 때 다음과 같은 세 개의 사각형을 추적해야 합니다.

  1. 전체 레이블 텍스트를 둘러싸는 사각형.
  2. 도구 설명 텍스트를 둘러싸는 사각형. 도구 설명 텍스트는 전체 레이블 텍스트와 동일하며 일반적으로 크기와 글꼴이 동일합니다. 따라서 두 개의 텍스트 사각형은 일반적으로 크기가 동일합니다.
  3. 도구 설명 창 사각형. 이 사각형은 안에 포함된 도구 설명 텍스트 사각형보다 약간 큽니다.

다음 그림에는 세 개의 사각형이 개략적으로 표시되어 있습니다. 레이블 텍스트의 숨겨진 부분은 회색 배경으로 표시됩니다.

diagram showing a long string, half of which has a gray background, then the same string within a larger tooltip window rectangle

현재 위치 도구 설명을 만들려면 레이블 텍스트 사각형을 오버레이하도록 도구 설명 텍스트 사각형을 배치해야 합니다. 두 사각형을 정렬하는 절차는 비교적 간단합니다.

  1. 레이블 텍스트 사각형을 정의합니다.
  2. 도구 설명 텍스트 사각형이 레이블 텍스트 사각형에 오버레이되도록 도구 설명 창을 배치합니다.

실제로는 일반적으로 두 텍스트 사각형의 왼쪽 위 모서리를 맞추는 것으로 충분합니다. 레이블 텍스트 사각형과 정확하게 일치하도록 도구 설명 텍스트 사각형의 크기를 조정하려고 하면 도구 설명 표시에 문제가 발생할 수 있습니다.

이 간단한 구성표의 문제는 도구 설명 텍스트 사각형을 직접 배치할 수 없다는 것입니다. 대신 두 텍스트 사각형의 모서리가 일치하도록 도구 설명 창 사각형을 레이블 텍스트 사각형의 맨 위와 왼쪽에 배치해야 합니다. 즉, 도구 설명 창 사각형과 묶은 텍스트 사각형 간의 오프셋을 알아야 합니다. 일반적으로 이 오프셋을 확인하는 간단한 방법은 없습니다.

현재 위치 도구 설명 구현

다음 코드 조각에서는 TTN_SHOW 처리기에서 TTM_ADJUSTRECT 메시지를 사용하여 현재 위치 도구 설명을 표시하는 방법을 보여 줍니다. 애플리케이션은 비공개 fMyStringIsTruncated 변수를 TRUE로 설정하여 레이블 텍스트가 잘렸다는 것을 나타냅니다. 처리기는 애플리케이션 정의 함수 GetMyItemRect를 호출하여 레이블 텍스트 사각형을 검색합니다. 이 사각형은 해당 창 사각형을 반환하는 TTM_ADJUSTRECT를 사용하여 도구 설명 컨트롤에 전달됩니다. 그런 다음 SetWindowPos를 호출하여 레이블 위에 도구 설명을 배치합니다.

case TTN_SHOW:
            
    if (fMyStringIsTruncated) 
    {
        RECT rc;
        
        GetMyItemRect(&rc);
        
        SendMessage(hwndToolTip, TTM_ADJUSTRECT, TRUE, (LPARAM)&rc);
        
        SetWindowPos(hwndToolTip, NULL, rc.left, rc.top, 0, 0, 
                     SWP_NOSIZE | SWP_NOZORDER | SWP_NOACTIVATE);
    }

이 예제에서는 도구 설명의 크기를 변경하지 않고 위치만 변경합니다. 두 텍스트 사각형은 왼쪽 위 모서리에 정렬되지만 반드시 같은 차원을 사용하는 것은 아닙니다. 실제로 차이는 일반적으로 작으며 대부분의 용도를 위해서는 이 방법을 사용하는 것이 좋습니다. 원칙상 SetWindowPos를 사용하여 도구 설명의 크기를 조정하고 위치를 변경할 수 있지만 이렇게 하면 예상치 못한 결과가 발생할 수 있습니다.

설명

일반 컨트롤 버전 5.80은 새 메시지 TTM_ADJUSTRECT를 추가하여 현재 위치 도구 설명의 사용을 간소화합니다. 도구 설명이 오버레이할 레이블 텍스트 사각형의 좌표와 함께 이 메시지를 보내고 적절하게 배치된 도구 설명 창 사각형의 좌표를 반환합니다.

도구 설명 컨트롤 사용