zoukankan      html  css  js  c++  java
  • 如何在状态栏显示当前鼠标位置

    1          如何在状态栏显示当前鼠标位置

    1.1      添加一个pane的命令ID

    切换到resource view界面上,单击右键,选择resource symbols,在resource symbols的对话框内点击new按钮,输入一个command IDID_INDICATOR_POS

    1.2      string table中添加一个string

    添加的这个string是为了在上一步骤中添加的pane中显示。

    添加的步骤为:在string table中右键->new,选择步骤1.1中添加的paneIDID_INDICATOR_PAGE。确认添加。

    1.3      pane添加到statusbarindicator 数组中

    添加之后可以是这样的

    static UINT BASED_CODE indicators[] =

    {

        ID_SEPARATOR,           // status line indicator

        ID_INDICATOR_CAPS,

        ID_INDICATOR_NUM,

        ID_INDICATOR_SCRL,

        ID_INDICATOR_POS,  //添加的

    };

    做完以上三个步骤,状态栏内的pane就算添加完毕了。

     

    1.4      添加处理函数以便可以实时将鼠标位置更新到状态栏内

    在视图类(当然也可以在其他类)的消息映射表内添加如下宏:

    1ON_UPDATE_COMMAND_UI(ID_INDICATOR_POS, OnUpdatePos)

    为视图类添加OnUpdatePos()函数;

    2)声明

    afx_msg void OnUpdatePos(CCmdUI * pCmUI);

    3)实现

    void CLearnDisplayBMPView::OnUpdatePage(CCmdUI *pCmdUI)

    {

           pCmdUI->Enable();

        pCmdUI->SetText( currentPos );       

    }

    其中currentPos是定义在CLearnDisplayBMPView一个CString类型的成员变量。

     

    经过以上三个步骤之后,只要在ViewMouseMove事件处理函数中改变currentPos,则程序会自动调用OnUpdatePos函数来改变其在状态栏中的显示。

    其中MouseMove的事件处理函数的实现如下:

    void CLearnDisplayBMPView::OnMouseMove(UINT nFlags, CPoint point)

           {

           currentPos.Format("X:%d,Y:%d",point.x,point.y);

           CFormView::OnMouseMove(nFlags, point);

    }

  • 相关阅读:
    使用客户端模型编程处理外部列表
    在 SharePoint2010 中使用 XML 查看器取得其他站点的内容列表
    在 SharePoint2010 中编程方式使用 BCS
    使用 zip 压缩包手动安装 Orchard
    NuGet Action Plan 更新到 1.1, 设置自动更新,获取 NuGet 包浏览器
    Percentage Closer Filtering
    Direct3D轮回:游戏特效之全屏泛光(Bloom)
    高斯模糊
    Shadow Map
    像素级动态模糊(Pixel Motion Blur)
  • 原文地址:https://www.cnblogs.com/strinkbug/p/645499.html
Copyright © 2011-2022 走看看