MFC如何添加工具栏以显示更改文本

时间:2017-01-16 08:39:41

标签: c++ mfc toolbar

我想在底部添加一个工具栏,显示我的鼠标位置。

如何添加只读,当我移动鼠标时会不断更新?

我所做的就是创建一个工具栏,它有一个按钮而不是只读样式。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

我想补充一点,你不应该把你的信息推到状态栏。让主消息泵在空闲时处理它。在您的子/主派生框架中添加UI处理程序。让它从视图中提取信息。

ON_UPDATE_COMMAND_UI( ID_STATUSBAR_LABEL, &OnUpdateStatusText )
...
void CADFrame::OnUpdateStatusText( CCmdUI *pCmdUI )
{
    pCmdUI->Enable( );
    CADView* pView= dynamic_cast< CADView* >( GetActiveView( ) );
    ASSERT_VALID( pView );
    pCmdUI->SetText( pView->GetStatusInfo( ) );
...
}

当您使用鼠标位置时,您将在视图中存储最后一个鼠标位置以进行渐进式计算。因此,在您查看类似的内容时,(这取决于您的要求):

const CString& CADView::GetStatusInfo( )
{
    if( bStatusMouseChanged )
    {
        strStatus.Format( _T(" x: %.4f y: %.4f")
            ,(double)( ptLastMouse.x - offsetx ) / winScale
            ,(double)( ptLastMouse.y - offsety ) / winScale
        );
        bStatusMouseChanged= false;
    }
    return strStatus;
}

通过保留标志,您只需在需要时构建字符串。来自shameless promo of my project