刘华世的官方博客

C++语言 使状态栏随对话框的改变而改变

BOOL CSizeStatusbarDlg::OnInitDialog()
{
    CDialog::OnInitDialog();

    // Add "About..." menu item to system menu.

    // IDM_ABOUTBOX must be in the system command range.
    ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
    ASSERT(IDM_ABOUTBOX < 0xF000);

    CMenu* pSysMenu = GetSystemMenu(FALSE);
    if (pSysMenu != NULL)
    {
        CString strAboutMenu;
        strAboutMenu.LoadString(IDS_ABOUTBOX);
        if (!strAboutMenu.IsEmpty())
        {
            pSysMenu->AppendMenu(MF_SEPARATOR);
            pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
        }
    }

    // Set the icon for this dialog.  The framework does this automatically
    //  when the application's main window is not a dialog
    SetIcon(m_hIcon, TRUE);            // Set big icon
    SetIcon(m_hIcon, FALSE);        // Set small icon
    
    // TODO: Add extra initialization here
    
    m_StatusBar.CreateEx(this,SBARS_SIZEGRIP);
    UINT panels[6];

    CRect rect;
    GetClientRect(rect);
    int width = rect.Width()/6;
    m_StatusBar.SetIndicators(panels,6);
    for (int i = 0 ; i<6; i++)
    {
        m_StatusBar.SetPaneInfo(i,1000+i,0,width);
    }    

    m_StatusBar.SetPaneText(0,"提示:");

    m_StatusBar.SetPaneText(2,"当前用户:");

    m_StatusBar.SetPaneText(4,"当前时间:");

    RepositionBars(AFX_IDW_CONTROLBAR_FIRSTw,AFX_IDW_CONTROLBAR_LAST,0);


    return TRUE;  // return TRUE  unless you set the focus to a control
}
void CSizeStatusbarDlg::OnSize(UINT nType, int cx, int cy) 
{
    CDialog::OnSize(nType, cx, cy);
    if (IsWindow(m_StatusBar.m_hWnd)) //判断状态栏是否被创建
    {
        CRect rect;
        GetClientRect(rect);
        int width = rect.Width()/6;
        for (int i = 0 ; i<6; i++)
        {
            m_StatusBar.SetPaneInfo(i,1000+i,0,width);
        }
        RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);    
    }
}
posted @ 2012-11-27 13:50  pythonschool  阅读(265)  评论(0编辑  收藏  举报
刘华世的官方博客