Visual C++ 控制栏
3.1 如何创建工具栏
- CreateEx
- 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 如何停靠工具栏
- EnableDocking
- DockBar
//停靠工具栏 m_wndDemoToolBar.EnableDocking(CBRS_ALIGN_ANY); EnableDocking(CBRS_ALIGN_ANY); DockBar(&m_wndToolBar, &m_wndDemoToolBar);
3.4 如何设置工具栏的位图
- 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 如何为工具栏按钮添加下拉箭头
- CommandToIndex取得命令Index
- GetButtonStyle取得样式
- 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 如何在工具栏中添加组合框
- SetButtonInfo创建一个空白区域
- GetItemRect获得空白区域大小和位置
- 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 如何使用组合栏
- 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++ 控制栏相关推荐
- [html]HTML5如何隐藏video元素的控制栏、全屏按钮?
[html]HTML5如何隐藏video元素的控制栏.全屏按钮? 将<video width="800px" height="400px" id=&quo ...
- Leanback(1)-播放控制栏下添加新的行
我们要在播放控制栏下面加入下面一行. 这个就是标准的row. leanback的原理 Android Leanback结构源码简析 - 简书 我们知道Row用来提供数据,row可以通过一个Object ...
- 腾讯X5内核使用详解(X5内核播放器使用如何去除控制栏全屏播放)以及一些注意事项...
例子下载地址 https://www.lanzous.com/i2zsv5g GIT就不用了麻烦的不行 本人安卓刚学 就上X5内核弄了老长时间由于对maven 和idea不熟悉刚开始导包都是 ...
- uc浏览器下方控制栏的调整方法
很多用户都喜欢使用uc浏览器,有些用户想要对uc浏览器窗口进行自定义设置,比如调整下方的控制栏,要如何操作呢?下面小编就来给大家分享一下操作步骤,打开高级设置通知栏就可以调整. uc浏览器下方控制栏怎 ...
- 关于VIDEO.JS播放器控制栏播放按钮点击问题
关于如何调用video.js组件作为播放器实现视频播放功能,网上有很多相关帖子,这里就不详细展开了.但在众多帖子里面,都没有提到网页版video的控制栏播放按钮点击问题,特此留贴记录一番. 症状是如下 ...
- SkeyeWebPlayer.js H5播放器开发之播放器控制栏部分功能的实现(四)
SkeyeWebPlayer.js H5免费播放器 支持Websocket-RTSP播放; 支持 m3u8(HLS) 播放; 支持 HTTP-FLV/WS-FLV 播放; 支持 HEVC/H265 播 ...
- 自定义video控制栏,移动端可行
<!DOCTYPE html> <html><head><meta charset="utf-8"><title>预览页 ...
- 控制 video 标签的控制栏组件(隐藏、显示进度条、播放按钮、全屏按钮等)
当 video 标签添加上 controls 属性时,页面上会显示出所有的控制组件.若有些组件不需要只需要在css中设置相关属性把它隐藏掉即可. <video controls></ ...
- CSS_控制 video 标签的控制栏组件(隐藏、显示进度条、播放按钮、全屏按钮等)
当 video 标签添加上 controls 属性时,页面上会显示出所有的控制组件.若有些组件不需要只需要在css中设置相关属性把它隐藏掉即可. <video controls></ ...
最新文章
- 实现 对象在内存中的引用一致性 之第一步
- 查看电脑python虚拟环境-Windows系统下,Python虚拟环境搭建
- java spring 集成定时器
- MM的Windows 7 登录密码忘记之后
- import java.io 包下载_Go 包管理机制深入分析
- Spring Boot文档阅读笔记-EhCache的使用
- 60-400-040-使用-binlog-MySQL BinLog入门
- 微信 9 年:张小龙指明方向,微信 AI 全面开放 NLP 能力
- 解读:AlphaGo之父倾力打造:The Predictron端到端训练与规划
- android 开发怎么让程序生成的图片文件不会被系统扫描到
- 全是干货:MBR分区结构以及GPT分区结构
- 2022-2028年中国网络直播行业商业模式创新与投资机会深度研究报告
- 饭后小甜点leetcode——堆
- 大数据Hive搭建部署常见报错信息原因
- 海外社交媒体最佳图片尺寸
- 使用three.js模拟城市灯光秀
- DZY Loves Math系列
- html迷你音乐播放器,javascript开发迷你音乐播放器
- 12个固态硬盘优化技巧,延长固态硬盘使用寿命
- Gromacs源码收获(四)