📄 tiplistctrl.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 + -