MFC 点击菜单 显示鼠标位置 再点击 取消显示

在MFC中,通过点击菜单中的“显示鼠标位置”,在状态栏中显示出鼠标位置,再点击“显示鼠标位置”,状态栏中取消显示鼠标位置???如何实现?voidCMy3View::OnM... 在MFC中,通过点击菜单中的“显示鼠标位置”,在状态栏中显示出鼠标位置,再点击“显示鼠标位置”,状态栏中取消显示鼠标位置???如何实现?

void CMy3View::OnMouseMove(UINT nFlags, CPoint point)
{
CClientDC dc(this);
CString str;
CMainFrame* pFrame=(CMainFrame*) AfxGetApp()->m_pMainWnd;
CStatusBar* pStatus=&pFrame->m_wndStatusBar;
if(pStatus)
{
str.Format("X=%d,Y=%d",point.x,point.y);
pStatus->SetPaneText(1,str);
}
CSize size=dc.GetTextExtent(str);
int nIndex=pStatus->CommandToIndex(ID_VIEW_MOUSE);
pStatus->SetPaneInfo(nIndex,ID_VIEW_MOUSE,SBPS_NORMAL,size.cx);
pStatus->SetPaneText(nIndex,str);
CView::OnMouseMove(nFlags, point);
}
这是部分代码。
但未点击“显示鼠标位置”时,状态栏中已显示。。。。。
求更改 以及实现再次点击取消显示鼠标位置的代码
展开
 我来答
倨孔鞍吞低寡N
2013-10-16 · 超过10用户采纳过TA的回答
知道答主
回答量:24
采纳率:0%
帮助的人:30.4万
展开全部
  1. 添加一个BOOL  m_bShowMouse;成员变量赋个初始值。

  2. 在OnLButtonDown中切换m_bShowMouse的值;

        if(m_bShowMouse)

            m_bShowMouse = false;

        else

            m_bShowMouse = true;

3.   在上面的代码中改为

if(m_bShowMouse )

    pStatus->SetPaneText(nIndex,str);  

else

    pStatus->SetPaneText(nIndex,_T(""));  


纯手打的,COPY时注意点!

更多追问追答
追问
这是点击鼠标左键显示坐标,
我想问的是如何通过点击菜单栏中的“显示鼠标位置”再显示鼠标坐标。。。。。
(其ID为ID_VIEW_MOUSE)
求问大神!
追答
ID_VIEW_MOUSE如果在资源里有这个菜单项的话,添加个事件响应用向导,如果没有的话,

你要手动加啦,具体位置你应该知道吧!
大致代码如下:
ON_COMMOND(ID_VIEW_MOUSE, OnViewMouse)

函数原型为 afx_msg void OnviewMouse();

把上面第二步的代码放到这个函数实现里!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式