MFC应用代码
+ -

MFC增加状态栏

2023-08-30 3 0

MFC增加状态栏
增加状态栏,并将状态栏分为2部分。

    m_StatusBar.Create(this);
    UINT indicators[2];
    m_StatusBar.SetIndicators(indicators, 2);
    CRect rect;
    GetClientRect(&rect);
    for (int i = 0; i < 2; i++)
    {
        m_StatusBar.SetPaneInfo(i, 0, 0, rect.Width() / 2);
    }
    m_StatusBar.SetPaneText(0, L"aaa", TRUE);
    m_StatusBar.SetPaneText(1, L"bbb", TRUE);
    RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);

为了使状态栏随窗口大小而跟随变化:

void CDupFileDlg::OnSize(UINT nType, int cx, int cy)
{
    CDialogEx::OnSize(nType, cx, cy);

    CRect rcClient(0, 0, cx, cy);
    RepositionBars(0, 0xffff, AFX_IDW_PANE_FIRST, 0, 0, &rcClient);
    RepositionBars(0, 0xffff, AFX_IDW_PANE_FIRST, reposQuery, &rcClient, &rcClient);
}

注意事项:
在自定义创建的线程中使用SetPaneText会导致失败。可使用发送消息的方式来实现:

void CDupFileDlg::SetStatusBarText(int index, TCHAR* text)
{
    ::SendMessage(m_StatusBar.m_hWnd, SB_SETTEXT, index, (LPARAM)text);
}

参考文章:https://blog.csdn.net/ljh0302/article/details/50238419/

0 篇笔记 写笔记

MFC增加状态栏
MFC增加状态栏增加状态栏,并将状态栏分为2部分。 m_StatusBar.Create(this); UINT indicators[2]; m_StatusBar.SetIndicators(indicators, 2); CRect rect; GetC......
作者信息
我爱内核
Windows驱动开发,网站开发
好好学习,天天向上。
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!