zoukankan      html  css  js  c++  java
  • 加载状态栏

    1.定义结构体:

    static UINT BASED_CODE indicators[] =
    {
        
        ID_SEPARATOR,           // status line Indicator
        ID_INDICATOR_POS,        //  Cursor Position Indicator
        ID_INDICATOR_OBJSIZE,    //  Cursor Position Indicator
        ID_INDICATOR_CAPS,        // Caps Lock Indicator
        ID_INDICATOR_NUM,        // Num Lock Indicator 
        ID_INDICATOR_SCRL,        // Scroll Lock Indicator
        ID_INDICATOR_CLOCK,        // Clock Indicator
        ID_INDICATOR_PAPER_SIZE,//page size
    };

    2.加载指示器

    CStatusBar  m_wndStatusBar;
    m_wndStatusBar.Create(this, WS_CHILD | WS_VISIBLE | CBRS_BOTTOM | CBRS_TOOLTIPS);
    m_wndStatusBar.SetIndicators(indicators,sizeof(indicators)/sizeof(UINT));

    3.添加相关文本

    CRect RectTemp;    
    GetClientRect(RectTemp);
    int nLength;
    nLength=0;
    nLength=abs(RectTemp.right-RectTemp.left);
    for(int k=0; k<=7; k++)
    {
        UINT nID,nStyle;
        int nWidth;
        m_wndStatusBar.GetPaneInfo(k, nID, nStyle, nWidth);
        m_wndStatusBar.SetPaneInfo(k, nID, nStyle, nLength/8);
        m_wndStatusBar.SetPaneText(k,"Test");
    }
    RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);
    m_wndStatusBar.ShowWindow(SW_SHOW);

    单文档和多文档程序默认加载状态栏

    int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
    {
        if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1)
            return -1;
        
        if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
            | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
            !m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
        {
            TRACE0("未能创建工具栏
    ");
            return -1;      // 未能创建
        }
    
        if (!m_wndStatusBar.Create(this) ||
            !m_wndStatusBar.SetIndicators(indicators,
              sizeof(indicators)/sizeof(UINT)))
        {
            TRACE0("未能创建状态栏
    ");
            return -1;      // 未能创建
        }
    
        // TODO: 如果不需要工具栏可停靠,则删除这三行
        m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
        EnableDocking(CBRS_ALIGN_ANY);
        DockControlBar(&m_wndToolBar);
    
        return 0;
    }

    修改

    void CDrawView::OnMouseMove(UINT nFlags, CPoint point)
    {
        CString CursorPos;
        CString tmpstr = "X= -XXX   Y= -YYY";
        CPoint curPoint(point);
        ClientToDoc(curPoint);
        CursorPos.Format("x= %-4d   y= %-4d", curPoint.x, curPoint.y);
        CStatusBar *pStatusBar = (CStatusBar *)((CMainFrame *)(AfxGetApp()->m_pMainWnd))->GetDescendantWindow(AFX_IDW_STATUS_BAR);
    
        if (pStatusBar == NULL)
            return;
    
        UINT nIDPos;
        UINT nStylePos;
        int nWidth;
    
        CClientDC dc(pStatusBar);
        CFont* pOldFont = dc.SelectObject(pStatusBar->GetFont());
        CSize szExtent  = dc.GetTextExtent(tmpstr);
        dc.SelectObject(pOldFont);
        int nIndexPos = pStatusBar->CommandToIndex(ID_INDICATOR_POS);
    
        pStatusBar->GetPaneInfo(nIndexPos, nIDPos, nStylePos, nWidth);
        pStatusBar->SetPaneInfo(nIndexPos, nIDPos, nStylePos, szExtent.cx);
        pStatusBar->SetPaneText(nIndexPos,CursorPos);
    }
  • 相关阅读:
    【Jmeter】 jmeter-server.bat 无法启动
    Jmeter场景设置与监听
    Jmeter性能测试配置
    【VMware】“该虚拟机似乎正在使用中”
    Jmeter介绍以及脚本制作与调试
    性能测试简介
    robotframework配置邮箱服务器
    Java冒泡排序
    LN(A)MT单机版架构部署
    Openstack之八:部署自服务网络
  • 原文地址:https://www.cnblogs.com/wuyuan2011woaini/p/5394358.html
Copyright © 2011-2022 走看看