[MFC] 툴팁(풍선 도움말) 만들기


1. 헤더에
CToolTipCtrl m_ToolTip; //추가

 

2. 함수생성
void 프로젝트명::InitToolTip()
{
   if (m_ToolTip.m_hWnd == NULL)
   {
      // Create ToolTip control
      m_ToolTip.Create(this);
      // Create inactive
      m_ToolTip.Activate(FALSE);
   }
}

 

3. 속성의 재정의란에서
PreTranslateMessage 재정의 후 코딩

BOOL 프로젝트명::PreTranslateMessage(MSG* pMsg)
{
   // TODO: 여기에 특수화된 코드를 추가 및/또는 기본 클래스를 호출합니다.
   InitToolTip(); //추가
   m_ToolTip.RelayEvent(pMsg);//추가

 

   return CDialogBar::PreTranslateMessage(pMsg);
}

 

4. 적용
예) 마우스가 특정영역에 있는 동안에 툴팁보이기, 메시지에서 WM_MOUSEMOVE 추가
void 프로젝트명::OnMouseMove(UINT nFlags, CPoint point)
{
   // TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다.
   CRect rect(0, -39, 133, 107);//영역선택
   CString csText = "툴팁입니다.";

 

   InitToolTip();//툴팁초기화

  

   if(rect.PtInRect(point) )//마우스포인트가 영역안에 있을 때
      m_ToolTip.AddTool(this, (LPCTSTR)csText, NULL, 0);//툴팁정의

  

   m_ToolTip.Activate(TRUE);//툴팁활성화
CDialogBar::OnMouseMove(nFlags, point);
}

출처 : http://www.qnnp.net/

by 버드군 | 2009/07/09 17:15 | 프로그래밍 이야기 | 트랙백 | 덧글(0)

[MFC] 프로젝트 합치기

<워크스페이스에서 프로젝트 합치기>

 

A의 다이얼로그 리소스를 복사합니다...

> A.rc 파일을 F가 열린 VC에 drag&drop 합니다...

A.rc가 열리면서 A의 리소스가 보입니다... 원하는 리소스(다이얼로그)를 F의 리소스 탭으로 복사한뒤 A.rc를 닫습니다...
(혹시 이 과정 중간에 A.rc가 수정되었더라면 저장하지 마세요...)

새로 추가한 다이얼로그 클래스 등록합니다.

> 클래스 위저드(ctrl+w)를 열면 새로운 다이얼로그 등록할꺼냐고 물어봅니다...
A에서 사용하던 클래스 이름 그대로 등록합니다... (ex... CADlg)

project A의 CADlg 소스를 복사합니다.

> 프로젝트를 닫습니다.

F의 디렉토리에 보면 새로 만든 A의 파일 두개 (ADlg.cpp, ADlg.h)가  보입니다...

이 파일을 project A에서 사용하던 파일로 덮어 씌웁니다...

F.ncb도 지워줍니다...

dsw 파일 더블 클릭해서 프로젝트를 다시 열면 됩니다...

by 버드군 | 2009/07/01 23:42 | 프로그래밍 이야기 | 트랙백 | 덧글(0)

쩝.. 귀찮군...

포스팅이 이렇게 귀찮은 작업일 줄이야...

by 버드군 | 2009/07/01 12:52 | 그외 | 트랙백 | 덧글(0)

...... 뭔가 허전하네...

짤방이 없어서 그런듯...

짤방 수집해야되나.. ㄱ-

by 버드군 | 2009/06/22 19:51 | 그외 | 트랙백 | 덧글(0)

대항해시대... 다시 시작했음.

에오스썹 에스파냐 -_-)..

과감하게 이전 버드군 지워버리고 새로 만들었음..

목표는 사상 최강의 무장상선(응?)!!

by 버드군 | 2009/06/22 19:50 | 게임 이야기 | 트랙백 | 덧글(0)

[C++/MFC]내 컴퓨터의 IP주소 알아내기


#include <winsock2.h>

#pragma comment (lib, "ws2_32.lib")

 

// 함수..

CString GetIPAddress ()

{

 CString strIPAddress;

 WORD wVersionRequested;
 WSADATA wsaData;
 char name[_MAX_PATH+1]={0};
 struct hostent* hostinfo;
 wVersionRequested = MAKEWORD( 2, 0 );
 if ( WSAStartup( wVersionRequested, &wsaData ) == 0 )
 {
  if( gethostname ( name, sizeof(name)) == 0)
  {
   if((hostinfo = gethostbyname(name)) != NULL)
   {
    for(int i=0; hostinfo->h_addr_list[i] != NULL; i++)
    {
     strIPAddress = inet_ntoa (*(struct in_addr *)hostinfo->h_addr_list[i]);
     break;
    }
   }
  }
  WSACleanup( );
 }

}


 

by 버드군 | 2009/06/20 19:24 | 프로그래밍 이야기 | 트랙백(2) | 덧글(0)

블로그 오픈 -_-

IT인으로서 블로그 하나쯤은 있어야 될거 같아서

늦게나마 만들었음 -_-)...

by 버드군 | 2009/06/20 19:18 | 트랙백 | 덧글(0)

◀ 이전 페이지          다음 페이지 ▶