问题描述
- 关于鼠标mousemove移动时的菜单显示与隐藏问题
-
小弟,最近在修改个框架。下面贴代码
VOID CTableViewFrame::OnMouseMove(UINT nFlags, CPoint MousePoint)
{
/*这是用来显示菜单的代码*/if (m_bRMouseDown==false)
{
//变量定义 WORD wChairID=INVALID_CHAIR; WORD wTableID=SwitchTableID(MousePoint); //获取位置,获取桌子椅子的位置 if ((wTableID!=INVALID_TABLE)&&(wTableID==m_wDownTableID)) { //获取桌子 ASSERT(GetTableViewItem(wTableID)!=NULL); ITableView * pITableView=GetTableViewItem(wTableID); //计算位置 CPoint TablePoint; TablePoint.x=(MousePoint.x-m_nXExcursion)%m_TableResource.m_SizeTable.cx; TablePoint.y=(MousePoint.y+m_nScrollPos)%m_TableResource.m_SizeTable.cy; //椅子测试 wChairID=SwitchChairID(TablePoint); }
//如果椅子和桌子都是有效的就会显示菜单
if ((wTableID==m_wDownTableID)&&(wChairID==m_wDownChairID))
{
//设置变量
m_wDownTableID=INVALID_TABLE;
m_wDownChairID=INVALID_CHAIR;// wTableID=INVALID_TABLE;
// wTableID=INVALID_CHAIR;//事件通知/*调用显示菜单的函数*/ m_pITableViewFrameSink->OnMouseMoveHitTable(wTableID,wChairID); RedrawWindow(); } else/*本来设想在else里面弄个重绘什么的,都没有成功*/ { //设置变量 m_wDownTableID=INVALID_TABLE; m_wDownChairID=INVALID_CHAIR; }
}
return;
}
下面是OnMouseMoveHitTable(wTableID,wChairID)的代码
OID CServerViewItem::OnMouseMoveHitTable(WORD wTableID, WORD wChairID)
{
//点击位置
if ((wTableID!=INVALID_TABLE)&&(wChairID!=INVALID_CHAIR)&&(wChairID!=INDEX_ENTER_CHAIR))
{
//获取用户
IClientUserItem * pIClientUserItem=m_TableViewFrame.GetClientUserItem(wTableID,wChairID);//用户菜单 if (pIClientUserItem!=NULL) { /*这用来显示菜单,TrackUserItemMenu2里面用了 CSkinMenu UserInfoMenu; UserInfoMenu.TrackPopupMenu(this);来显示菜单*/ TrackUserItemMenu2(pIClientUserItem); } return; } return;
}
这段代码当鼠标移动有用户存在的桌子和椅子上时,就会显示用户的个人信息菜单,但是移到空白区域,菜单还会显示,有什么办法,让移动到空白区域时自动消失呢?搞了几天,没有头绪。求教!
解决方案
各位大神,帮帮忙,网上的资料找不到。又没有人可以咨询。
解决方案二:
各位大神也可以说说看自己达到这个功能所使用的方法
解决方案三:
大神么,给点力。各位大神,帮帮忙,网上的资料找不到。又没有人可以咨询!