读书人

怎么判断鼠标移动到工具栏的某项

发布时间: 2012-03-11 18:15:39 作者: rapoo

如何判断鼠标移动到工具栏的某项
菜单已经知道了,工具栏呢?

[解决办法]
会有mousemove消息啊
[解决办法]

如果你想得到工具栏的上button对应的ID 则以下方法可以....如果你想要得到位置坐标,则重载mousemove消息,在里面进行复杂的crect计算与判断.


加入消息映射.
ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTW, 0, 0xFFFF, OnToolTipNotify)
ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTA, 0, 0xFFFF, OnToolTipNotify)


实现 函数

BOOL 你自己的类::OnToolTipNotify(UINT ID, NMHDR *pNMHDR,
LRESULT *pResult)
{
TOOLTIPTEXTA* pTTTA = (TOOLTIPTEXTA*)pNMHDR;
TOOLTIPTEXTW* pTTTW = (TOOLTIPTEXTW*)pNMHDR;
CString strTipText;
UINT nID = pNMHDR->idFrom;
if (pNMHDR->code == TTN_NEEDTEXTA && (pTTTA->uFlags & TTF_IDISHWND) ||
pNMHDR->code == TTN_NEEDTEXTW && (pTTTW->uFlags & TTF_IDISHWND))
{
nID = ::GetDlgCtrlID((HWND)nID);
}

if (nID == 0) return FALSE;
switch(nID)
{
case ID_XXX:
MessageBox("aa");
break;
}

读书人网 >VC/MFC

热点推荐