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);

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++)
{ //获得工具栏按钮IDUINT 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);
}

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);

Visual C++ 控制栏相关推荐

  1. [html]HTML5如何隐藏video元素的控制栏、全屏按钮?

    [html]HTML5如何隐藏video元素的控制栏.全屏按钮? 将<video width="800px" height="400px" id=&quo ...

  2. Leanback(1)-播放控制栏下添加新的行

    我们要在播放控制栏下面加入下面一行. 这个就是标准的row. leanback的原理 Android Leanback结构源码简析 - 简书 我们知道Row用来提供数据,row可以通过一个Object ...

  3. 腾讯X5内核使用详解(X5内核播放器使用如何去除控制栏全屏播放)以及一些注意事项...

    例子下载地址 https://www.lanzous.com/i2zsv5g      GIT就不用了麻烦的不行 本人安卓刚学 就上X5内核弄了老长时间由于对maven 和idea不熟悉刚开始导包都是 ...

  4. uc浏览器下方控制栏的调整方法

    很多用户都喜欢使用uc浏览器,有些用户想要对uc浏览器窗口进行自定义设置,比如调整下方的控制栏,要如何操作呢?下面小编就来给大家分享一下操作步骤,打开高级设置通知栏就可以调整. uc浏览器下方控制栏怎 ...

  5. 关于VIDEO.JS播放器控制栏播放按钮点击问题

    关于如何调用video.js组件作为播放器实现视频播放功能,网上有很多相关帖子,这里就不详细展开了.但在众多帖子里面,都没有提到网页版video的控制栏播放按钮点击问题,特此留贴记录一番. 症状是如下 ...

  6. SkeyeWebPlayer.js H5播放器开发之播放器控制栏部分功能的实现(四)

    SkeyeWebPlayer.js H5免费播放器 支持Websocket-RTSP播放; 支持 m3u8(HLS) 播放; 支持 HTTP-FLV/WS-FLV 播放; 支持 HEVC/H265 播 ...

  7. 自定义video控制栏,移动端可行

    <!DOCTYPE html> <html><head><meta charset="utf-8"><title>预览页 ...

  8. 控制 video 标签的控制栏组件(隐藏、显示进度条、播放按钮、全屏按钮等)

    当 video 标签添加上 controls 属性时,页面上会显示出所有的控制组件.若有些组件不需要只需要在css中设置相关属性把它隐藏掉即可. <video controls></ ...

  9. CSS_控制 video 标签的控制栏组件(隐藏、显示进度条、播放按钮、全屏按钮等)

    当 video 标签添加上 controls 属性时,页面上会显示出所有的控制组件.若有些组件不需要只需要在css中设置相关属性把它隐藏掉即可. <video controls></ ...

最新文章

  1. 实现 对象在内存中的引用一致性 之第一步
  2. 查看电脑python虚拟环境-Windows系统下,Python虚拟环境搭建
  3. java spring 集成定时器
  4. MM的Windows 7 登录密码忘记之后
  5. import java.io 包下载_Go 包管理机制深入分析
  6. Spring Boot文档阅读笔记-EhCache的使用
  7. 60-400-040-使用-binlog-MySQL BinLog入门
  8. 微信 9 年:张小龙指明方向,微信 AI 全面开放 NLP 能力
  9. 解读:AlphaGo之父倾力打造:The Predictron端到端训练与规划
  10. android 开发怎么让程序生成的图片文件不会被系统扫描到
  11. 全是干货:MBR分区结构以及GPT分区结构
  12. 2022-2028年中国网络直播行业商业模式创新与投资机会深度研究报告
  13. 饭后小甜点leetcode——堆
  14. 大数据Hive搭建部署常见报错信息原因
  15. 海外社交媒体最佳图片尺寸
  16. 使用three.js模拟城市灯光秀
  17. DZY Loves Math系列
  18. html迷你音乐播放器,javascript开发迷你音乐播放器
  19. 12个固态硬盘优化技巧,延长固态硬盘使用寿命
  20. Gromacs源码收获(四)

热门文章

  1. FPGA之道(70)提高设计的综合性能(二)提高设计的自测性
  2. 【 Verilog HDL 】函数(function)与任务(task)简单介绍
  3. 【 Verilog HDL 】循环语句总结
  4. 通信系统之信道(一)
  5. java反射类的字段
  6. ext2文件系统 - mke2fs
  7. BZOJ4034 树上操作(树剖 线段树大模板)
  8. NYOJ 45 棋盘覆盖
  9. Bootstrap 表单控件一(单行输入框input,下拉选择框select ,文本域textarea)
  10. C++11 并发指南三(std::mutex 详解)