ctooltipctrl 예제

아래 스크린샷은 도구 팁을 표시하는 방법을 알아보기 위해 만들 예제를 보여 주었습니다. 다음 섹션에서는 모든 MFC 프로젝트에서 사용할 수 있는 도우미 클래스를 만듭니다. 참고, `TOOLINFO`의 `hwnd` 멤버는 도구 창의 부모의 창 핸들입니다. 이 예제에서 대화 상자 클래스는 텍스트 상자, 명령 단추 등과 같은 모든 도구 창의 부모입니다. `uId` 멤버에 자식 창 핸들을 저장합니다. `uFlags` 멤버에서 `TTF_IDISHWND`와 `TTF_SUBCLASS`라는 플래그를 설정합니다. 플래그 `TTF_IDISHWND` `TOOLINFO` 구조의 `uId` 멤버가 도구 팁을 표시하는 도구의 창 핸들을 잡고 있음을 지정합니다. `TTF_SUBCLASS` 플래그는 MFC 프레임워크에 창을 하위 클래스로 표시합니다. 하위 클래스 창은 마우스가 들어오고 나가도록 추적하고 마우스 이동이 없을 때 도구 팁을 표시합니다. Visual Studio 대화형 개발 환경(IDE)을 사용하여 클래스가 추가되면 이 예제의 대화 상자는 두 개의 텍스트 상자와 하나의 단추를 갖도록 설계되었습니다. 기본 대화 상자에서 확인 및 취소 단추가 제거되고 새 단추가 추가됩니다. 대화 상자가 준비되면 컨트롤 변수가 대화 상자 클래스에 추가됩니다.

컨트롤 변수 추가는 아래 비디오에 표시됩니다. 이 예제에서 대화 상자는 도구의 부모입니다. `도구`는 푸시 버튼, 편집 상자, 콤보 상자 등과 같은 컨트롤에 불과합니다. `팁`은 도구에 대한 설명 메시지를 표시하거나 컨트롤을 말할 수 있는 노란색 사각형입니다. 소스 코드는 CListCtrl에 대해 설명된 도구 설명 솔루션을 구현하는 방법의 예를 제공합니다. 이제 응용 프로그램을 실행하고 텍스트 상자 또는 단추 컨트롤 위에 마우스 커서를 배치할 수 있습니다. 그러면 컨트롤 근처의 도구 설명이 표시됩니다. MFC 클래스를 확장하면 도구 팁 표시를 개선하기 위해 클래스에 추가 기능을 추가할 수 있습니다. 예를 들어 마우스 포인터가 컨트롤에 남아 있을 때 두 텍스트를 번갈아 가며 도구 끝 텍스트 주위에 테두리를 제공한다고 가정해 보겠습니다. 다음 코드 예제에는 도구 설명 창이 표시됩니다.

먼저 모든 기본값을 수락하여 대화 상자 기반 응용 프로그램을 만들고 응용 프로그램의 이름을 `TooltipExp`로 지정해야 합니다. 응용 프로그램이 만들어지면 프로젝트에 클래스를 추가하고 클래스의 이름을 `CToolTipCtrlExt`로 지정합니다. 이 클래스는 `MFC` 클래스 `CToolTipCtrl`에서 파생되어야 합니다. 이 예제에서는 파생 클래스를 사용하여 표준 도구 팁이 표시됩니다. 그러나 더 많은 기능을 추가할 수 있습니다. 예를 들어 테두리를 설정하거나 도구 팁 등에 하이퍼 링크를 표시한다고 가정해 보겠습니다. CListCtrl에는 몇 가지 더 많은 옵션을 추가하는 몇 가지 트릭이 있습니다. “도구”는 자식 창 또는 컨트롤과 같은 창 또는 창의 클라이언트 영역 내의 응용 프로그램 정의 직사각형 영역입니다. 도구 설명은 대부분의 경우 숨겨져 있으며 사용자가 도구에 커서를 놓고 약 반 초 동안 사용할 때만 표시됩니다.

도구 설명은 커서 근처에 나타나며 사용자가 마우스 단추를 클릭하거나 커서를 도구에서 떼어내면 사라집니다. 도구에 대한 텍스트가 포함된 문자열 리소스의 nIDText ID입니다. . str 도구의 텍스트를 받는 CString 개체에 대한 참조입니다. 이 메서드는 Windows SDK에 설명 된 TTM_GETCURRENTTOOL 메시지를 보냅니다. . 도구에 대한 정보입니다. TOOLINFO 구조에 대한 자세한 내용은 CToolTipCtrl::GetToolInfo를 참조하십시오. lpszText 도구의 텍스트에 대한 포인터입니다. 이 매개 변수에 LPSTR_TEXTCALLBACK 값이 포함된 경우 TTN_NEEDTEXT 알림 메시지는 pWnd가 가리키는 창의 상위로 이동합니다. 3) `OnInitDialog` 대화 초기화 기능에서 먼저 도구 끝 컨트롤 개체를 만들고 대화 상자를 매개 변수로 전달합니다.

다음으로 `Display_tooltip_text()` 함수를 호출하여 대화 상자 컨트롤에 도구 설명 텍스트를 등록합니다. 1) 이제 파생 클래스가 준비되었습니다. 먼저 대화 클래스에서 확장 된 컨트롤에 대 한 헤더 파일을 포함 합니다. 기본 도구 팁 기능은 확장되지 않습니다. 그러나, 우리는 인생을 더 쉽게 만드는 기능을 소개합니다.

Posted in Uncategorised