⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tiplistctrl.cpp

📁 网页分类器
💻 CPP
字号:
// TipListCtrl.cpp : implementation file
//


#include "stdafx.h"
#include "TipListCtrl.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CTipListCtrl

CTipListCtrl::CTipListCtrl() : m_nItem(-1), m_nSubItem(-1), m_bEnableTips(FALSE)
{
}

CTipListCtrl::~CTipListCtrl()
{
}


BEGIN_MESSAGE_MAP(CTipListCtrl, CListCtrl)
	//{{AFX_MSG_MAP(CTipListCtrl)
	ON_WM_MOUSEMOVE()
	ON_WM_DESTROY()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTipListCtrl message handlers

void CTipListCtrl::OnMouseMove(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default

	if(m_bEnableTips)
	{
		CString str;
		LVHITTESTINFO lvhti;
		
		// 判断鼠标当前所在的位置(行, 列)
		lvhti.pt = point;	
		SubItemHitTest(&lvhti);
		
		// 如果鼠标移动到另一个单元格内, 则进行处理; 否则, 不做处理
		if((lvhti.iItem != m_nItem) || (lvhti.iSubItem != m_nSubItem))
		{
			// 保存当前鼠标所在的(行,列)
			m_nItem = lvhti.iItem;
			m_nSubItem = lvhti.iSubItem;
			
			// 如果鼠标移动到一个合法的单元格内,则显示新的提示信息
			// 否则, 不显示提示
			if((m_nItem != -1) && (m_nSubItem != -1))
			{
				int count = GetHeaderCtrl()-> GetItemCount();
				str = "";
				for(int i=0;i<count;i++)
				{
					str = str+GetItemText(m_nItem,i);
					str = str +"  ";
				}
				m_toolTip.AddTool(this, str);
				str.Empty();
				// 显示提示框
				m_toolTip.Pop();
			}
			else
			{
				m_toolTip.AddTool(this, "");
				m_toolTip.Pop();
			}
		}
	}
	
	CListCtrl::OnMouseMove(nFlags, point);
}

BOOL CTipListCtrl::PreTranslateMessage(MSG* pMsg) 
{
	// TODO: Add your specialized code here and/or call the base class
	if(::IsWindow(m_toolTip.GetSafeHwnd()))
	{
		m_toolTip.RelayEvent(pMsg);
	}
	
	return CListCtrl::PreTranslateMessage(pMsg);
}

void CTipListCtrl::OnDestroy() 
{
	CListCtrl::OnDestroy();
	
	// TODO: Add your message handler code here
	// listctrl销毁时, 同时销毁 tooltipctrl
	m_toolTip.DestroyWindow();
	m_toolTip.Detach();
}

BOOL CTipListCtrl::EnableTips()
{
	EnableToolTips(TRUE);
	// 创建tooltip控件
    m_bEnableTips = m_toolTip.Create(this, TTS_ALWAYSTIP);
	
	if(m_bEnableTips)
	{
		m_toolTip.Activate(TRUE);
		m_toolTip.SetDelayTime(TTDT_INITIAL, 0);
	}
	
	return m_bEnableTips;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -