zoukankan      html  css  js  c++  java
  • Visual C++ 控制栏

    3.1 如何创建工具栏

    1. CreateEx
    2. LoadToolBar
    //创建工具栏窗口
    if (!m_wndDemoToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | 
        WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | 
        CBRS_FLYBY | CBRS_SIZE_DYNAMIC))
    {
        return -1;
    }
    
    //加载工具栏资源
    if (!m_wndDemoToolBar.LoadToolBar(IDR_TOOLBAR))
    {
        return -1;
    }
    

    3.2 如何设置工具栏的标题

    //设置工具栏标题
    CString strText = _T("");
    strText.LoadString(AFX_IDS_APP_TITLE);
    m_wndToolBar.SetWindowText(strText);
    

    image

    3.3 如何停靠工具栏

    1. EnableDocking
    2. DockBar
    //停靠工具栏
    m_wndDemoToolBar.EnableDocking(CBRS_ALIGN_ANY);
    EnableDocking(CBRS_ALIGN_ANY);
    DockBar(&m_wndToolBar, &m_wndDemoToolBar);
    

    3.4 如何设置工具栏的位图

    1. SetBitmap
    //设置位图
    m_Bitmap.LoadBitmap(IDB_TOOLBAR);
    m_wndDemoToolBar.SetBitmap((HBITMAP)m_Bitmap);
    

    3.5 如何为工具栏按钮添加文本标签

    SetButtonText方法

    for(int n = 0; n < 3; n++)
    { 
        //获得工具栏按钮ID
        UINT nID = m_wndToolBar.GetItemID(n);
    
        CString strText = _T("");
        if(!strText.LoadString(nID)) 
        {
            continue;
        }
        int nIndex = strText.Find(_T('\n'));
        if(nIndex < 0) 
        {
            continue;
        }
        strText = strText.Right(strText.GetLength() - nIndex - 1);
    
        //设置工具栏按钮文本
        m_wndToolBar.SetButtonText(n, strText); 
    }
    


    image

    3.6 如何为工具栏按钮添加下拉箭头

    1. CommandToIndex取得命令Index
    2. GetButtonStyle取得样式
    3. SetButtonStyle重新设置样式
    //设置工具栏按钮风格
    int nIndex = m_wndToolBar.CommandToIndex(ID_FILE_NEW);
    UINT nStyle = m_wndToolBar.GetButtonStyle(nIndex);
    nStyle |= TBSTYLE_DROPDOWN;
    m_wndToolBar.SetButtonStyle(nIndex, nStyle);
    

    3.7 如何为工具栏按钮设置热点图像

    就是鼠标移动到Toolbar时改变的图片

    //创建图像列表
    if(!m_ImageList.Create(IDB_TOOLBAR, 16, 0, RGB(128,128,128)))
    {
        return -1;
    }
    
    //设置工具栏图像列表
    m_wndToolBar.GetToolBarCtrl().SetHotImageList(&m_ImageList);
    

    3.8 如何启用或禁用工具栏的工具提示

    SetBarStyle方法,与或CBRS_TOOLTIPS

    void CMainFrame::OnEnableToolTips() 
    {
        //获得工具栏风格
        DWORD dwStyle = m_wndToolBar.GetBarStyle();
    
        //启用或禁用工具提示
        if (dwStyle & CBRS_TOOLTIPS) 
        {
            dwStyle &= ~CBRS_TOOLTIPS;
        }
        else
        {
            dwStyle |= CBRS_TOOLTIPS;
        }
     
        //设置工具栏风格
        m_wndToolBar.SetBarStyle(dwStyle);
    }
    
    void CMainFrame::OnUpdateEnableToolTips(CCmdUI* pCmdUI) 
    {
        //获得工具栏风格
        DWORD dwStyle = m_wndToolBar.GetBarStyle();
    
        if (dwStyle & CBRS_TOOLTIPS) 
        {
            pCmdUI->SetCheck(TRUE);
        }
        else
        {
            pCmdUI->SetCheck(FALSE);
        }
    }
    

    3.9 如何在工具栏中添加组合框

    1. SetButtonInfo创建一个空白区域
    2. GetItemRect获得空白区域大小和位置
    3. ComboBox的Create方法创建
    BOOL CMainFrame::CreateComboBox(UINT nID)
    {
        int nIndex = 0;
        CRect rect;
    
        //查找按钮
        while (m_wndToolBar.GetItemID(nIndex) != nID)
        {
            nIndex++;
        }
    
        //为组合框创建一个空白区域
        m_wndToolBar.SetButtonInfo(nIndex, nID, TBBS_SEPARATOR, 180);
    
        //获得空白区域大小和位置
        m_wndToolBar.GetItemRect(nIndex, &rect);
    
        //组合框大小和位置
        rect.top += 0;
        rect.bottom += 200;
    
        //在空白区域创建组合框
        if (!m_ComboBox.Create(WS_CHILD | WS_VISIBLE | CBS_AUTOHSCROLL | 
            CBS_DROPDOWNLIST | CBS_HASSTRINGS, rect, &m_wndToolBar, nID))
        {
            TRACE0("Failed to create combo-box\n");
            return FALSE;
        }
    
        //显示组合框
        m_ComboBox.ShowWindow(SW_SHOW);
    
        //在组合框中添加字符串
        m_ComboBox.AddString("500%");
        m_ComboBox.AddString("200%");
        m_ComboBox.AddString("150%");
        m_ComboBox.AddString("100%");
        m_ComboBox.AddString("75%");
        m_ComboBox.AddString("50%");
        m_ComboBox.AddString("25%");
        m_ComboBox.AddString("10%");
        m_ComboBox.SetCurSel(3);
    
        return TRUE;
    }
    

    3.10 如何创建状态栏

    CStatusBar的应用

    //创建状态栏窗口
    if (!m_wndDemoStatusBar.Create(this))
    {
        return -1;
    }
    
    //ID数组
    UINT IDArray[2];
    for (int n = 0; n < 2; n++)
    {
        IDArray[n] = 10000 + n;
    }
    
    //设置状态栏指示器
    m_wndDemoStatusBar.SetIndicators(IDArray, sizeof(IDArray) / sizeof(UINT));
    
    //设置窗格宽度
    m_wndDemoStatusBar.SetPaneInfo(0, IDArray[0], SBPS_NORMAL, 100);
    m_wndDemoStatusBar.SetPaneInfo(1, IDArray[1], SBPS_STRETCH, 0);
    
    //设置窗格文本
    m_wndDemoStatusBar.SetPaneText(0, _T("状态栏:"));
    m_wndDemoStatusBar.SetPaneText(1, _T(""));
    

    3.11 如何在状态栏中添加进度条

    字段m_Progress的设置

    //创建状态栏窗口
    if (!m_wndProgressStatusBar.Create(this))
    {
        return -1;
    }
    
    //ID数组
    UINT IDArray[2];
    for (int n = 0; n < 2; n++)
    {
        IDArray[n] = 10000 + n;
    }
    
    //设置状态栏指示器
    m_wndProgressStatusBar.SetIndicators(IDArray, sizeof(IDArray) / sizeof(UINT));
    
    //设置窗格宽度
    m_wndProgressStatusBar.SetPaneInfo(0, IDArray[0], SBPS_NORMAL, 200);
    m_wndProgressStatusBar.SetPaneInfo(1, IDArray[1], SBPS_STRETCH, 0);
    
    //设置窗格文本
    m_wndProgressStatusBar.SetPaneText(0, _T(""));
    m_wndProgressStatusBar.SetPaneText(1, _T(""));
    
    //设置进度条
    m_wndProgressStatusBar.m_Progress.SetRange(0, 100);
    m_wndProgressStatusBar.m_Progress.SetStep(10);
    m_wndProgressStatusBar.m_Progress.SetPos(50);
    

    3.12 如何显示或隐藏工具栏和状态栏

    ShowControlBar可以用在CStatusBar和CToolBar

    void CMainFrame::OnShowToolBar() 
    {
        if (m_wndToolBar.GetStyle() & WS_VISIBLE)
        {
            //隐藏工具栏
            ShowControlBar(&m_wndToolBar, FALSE, FALSE);
        }
        else
        {
            //显示工具栏
            ShowControlBar(&m_wndToolBar, TRUE, FALSE);
        }
    }
    

    3.13 如何使用组合栏

    1. AddBar
    //创建组合框
    if (!m_ComboBox.Create(WS_CHILD | WS_VISIBLE | WS_VSCROLL | 
        CBS_DROPDOWN, CRect(0, 0, 100, 200), this, IDC_COMBOBOX))
    {
        return FALSE;
    }
    
    //创建按钮
    m_Button.Create(_T("确定"), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, 
        CRect(0, 0, 50, 20), this, IDC_TEST);
    
    //创建Rebar
    if (!m_wndReBar.Create(this))
    {
        return -1;
    }
    
    //添加工具栏、组合框、按钮添加到Rebar中
    m_wndReBar.AddBar(&m_wndToolBar);
    m_wndReBar.AddBar(&m_ComboBox, NULL, NULL,  
        RBBS_NOGRIPPER | RBBS_BREAK);
    m_wndReBar.AddBar(&m_Button, NULL, NULL, RBBS_NOGRIPPER);
    
  • 相关阅读:
    【设计模式】六大原则
    【HTML5】表单属性
    【HTML5】表单元素
    【HTML5】input类型
    【HTML5】Server-Sent服务器发送事件
    【HTML5】Web Workers
    【HTML5】Application Cache应用程序缓存
    【HTML5】Web存储
    【HTML5】地理定位
    【HTML5】Canvas和SVG的区别
  • 原文地址:https://www.cnblogs.com/Clingingboy/p/2005845.html
Copyright © 2011-2022 走看看