状态栏的使用

StatusBarDemo

const int nStatusIcon = 0;
const int nStatusInfo = 1;
const int nStatusProgress = 2;
const int nStatusLabel = 3;
const int nStatusAnimation = 4;

static UINT indicators[] =
{
 ID_INDICATOR_ICON,  // status icon
 ID_SEPARATOR,           // status line indicator
 ID_INDICATOR_PROGRESS, // progress bar
 ID_INDICATOR_LABEL,  // text label
 ID_INDICATOR_ANIMATION, // animation pane
 ID_INDICATOR_CAPS,
 ID_INDICATOR_NUM,
 ID_INDICATOR_SCRL,
};

CMainFrame::OnCreate

if (!m_wndStatusBar.Create(this) ||
  !m_wndStatusBar.SetIndicators(indicators,
    sizeof(indicators)/sizeof(UINT)))
 {
  TRACE0("Failed to create status bar\n");
  return -1;      // fail to create
 }

m_wndStatusBar.SetPaneStyle (nStatusIcon, SBPS_NOBORDERS);
 m_wndStatusBar.SetPaneStyle (nStatusAnimation, SBPS_NOBORDERS);
 m_wndStatusBar.SetPaneStyle (nStatusInfo, SBPS_STRETCH | SBPS_NOBORDERS);
 m_wndStatusBar.SetPaneWidth (nStatusProgress, 80);
 m_wndStatusBar.EnablePaneDoubleClick ();

CBCGPStatusBar& GetStatusBar () const
 {
  return ((CMainFrame*) AfxGetMainWnd ())->GetStatusBar ();
 }

void CStatusBarDemoView::OnInitialUpdate()
{
 CFormView::OnInitialUpdate();

m_wndTextColor.EnableAutomaticButton (_T("Default"), globalData.clrBtnText);
 m_wndTextColor.EnableOtherButton (_T("Other..."));
 m_wndTextColor.SetColor ((COLORREF)-1);

m_wndBackColor.EnableAutomaticButton (_T("Default"), globalData.clrBtnFace);
 m_wndBackColor.EnableOtherButton (_T("Other..."));
 m_wndBackColor.SetColor ((COLORREF)-1);

if (m_imlStatusAnimation.GetSafeHandle () == NULL)//m_imlStatusAnimation为CImageList
 {
  m_imlStatusAnimation.Create (IDB_ANIMATION, 16, 0, RGB (255, 0, 255));
 }

const UINT uiLoadImageFlags = LR_CREATEDIBSECTION | LR_LOADMAP3DCOLORS;

if (m_bmpIcon1.GetSafeHandle () == NULL)
 {
  HBITMAP hbmp = (HBITMAP) ::LoadImage (
   AfxGetResourceHandle (),
   MAKEINTRESOURCE(IDB_ICON1),
   IMAGE_BITMAP,
   0, 0,
   uiLoadImageFlags);
  m_bmpIcon1.Attach (hbmp);
 }

if (m_bmpIcon2.GetSafeHandle () == NULL)
 {
  HBITMAP hbmp = (HBITMAP) ::LoadImage (
   AfxGetResourceHandle (),
   MAKEINTRESOURCE(IDB_ICON2),
   IMAGE_BITMAP,
   0, 0,
   uiLoadImageFlags);
  m_bmpIcon2.Attach (hbmp);
 }

GetStatusBar ().SetPaneIcon (nStatusIcon, m_bmpIcon1);
 GetStatusBar ().SetTipText (nStatusIcon, _T("This is a tooltip"));//图标的提示
}

void CStatusBarDemoView::OnStartProgress()
{
 if (m_bInProgress)
 {
  KillTimer (ID_PROGRESS_TIMER);
  m_wndStartProgress.SetWindowText (_T("Start Progress"));
  GetStatusBar ().EnablePaneProgressBar (nStatusProgress, -1);

m_bInProgress = FALSE;

return;
 }

GetStatusBar ().EnablePaneProgressBar (nStatusProgress, PROGRESS_MAX);

m_nProgressCurr = 0;
 m_bInProgress = TRUE;

SetTimer (ID_PROGRESS_TIMER, 200, NULL);
 m_wndStartProgress.SetWindowText (_T("Stop Progress"));
}

void CStatusBarDemoView::OnStartAnimation()
{
 if (m_bInAnimation)
 {
  m_wndStartAnimation.SetWindowText (_T("Start Animation"));
  GetStatusBar ().SetPaneAnimation (nStatusAnimation, NULL);
  m_bInAnimation = FALSE;
  return;
 }

GetStatusBar ().SetPaneAnimation (nStatusAnimation, m_imlStatusAnimation);
 GetStatusBar ().SetPaneText (nStatusAnimation, _T(""));
 GetStatusBar ().SetPaneWidth (nStatusAnimation, 16);

m_wndStartAnimation.SetWindowText (_T("Stop Animation"));
 m_bInAnimation = TRUE;
}

void CStatusBarDemoView::OnIcon()
{
 UpdateData ();
 GetStatusBar ().SetPaneIcon (nStatusIcon, m_nIcon == 0 ? m_bmpIcon1 : m_bmpIcon2);
}

void CStatusBarDemoView::OnBackColor()
{
 GetStatusBar ().SetPaneBackgroundColor (nStatusLabel, m_wndBackColor.GetColor ());
}

void CStatusBarDemoView::OnTextColor()
{
 GetStatusBar ().SetPaneTextColor (nStatusLabel, m_wndTextColor.GetColor ());
}

void CStatusBarDemoView::OnIndicatorLabel()

//ID_INDICATOR_LABEL("Simple text")的响应函数
{
 MessageBox (_T("Status bar pane double-click..."));
}

void CStatusBarDemoView::OnTimer(UINT_PTR nIDEvent)
{
 if (nIDEvent == ID_PROGRESS_TIMER)
 {
  m_nProgressCurr += 5;

if (m_nProgressCurr > PROGRESS_MAX)
  {
   m_nProgressCurr = 0;
  }

GetStatusBar ().SetPaneProgress (nStatusProgress, m_nProgressCurr);
 }
 
 CFormView::OnTimer(nIDEvent);
}

BCGControlBar使用(九)相关推荐

  1. 2021年大数据Kafka(九):kafka消息存储及查询机制原理

    全网最详细的大数据Kafka文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 kafka消息存储及查询机制原理 一.Kafka数据存储机制 ...

  2. 2021年大数据HBase(九):Apache Phoenix的安装

    全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 前言 系列历史文章 安装Phoenix 一.下载 二.安装 1.上传安装包 ...

  3. 2021年大数据Hive(九):Hive的数据压缩

    全网最详细的大数据Hive文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 前言 Hive的数据压缩 一.MR支持的压缩编码 二.压缩配置 ...

  4. 2021年大数据Hadoop(二十九):​​​​​​​关于YARN常用参数设置

    全网最详细的Hadoop文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 本系列历史文章 前言 关于yarn常用参数设置 设置container分配最小内 ...

  5. python第二十九课——文件读写(复制文件)

    自定义函数:实现文件复制操作有形参(2个) 没有返回值相似版(不用) def copyFile(src,dest):#1.打开两个文件:1个关联读操作,1个关联写操作fr=open(src,'rb') ...

  6. 第十九章——使用资源调控器管理资源(2)——使用T-SQL配置资源调控器

    第十九章--使用资源调控器管理资源(2)--使用T-SQL配置资源调控器 原文: 第十九章--使用资源调控器管理资源(2)--使用T-SQL配置资源调控器 前言: 在前一章已经演示了如何使用SSMS来 ...

  7. autoware中lgsvl Simulator安装与使用:LGsvl Simulator 2021.2.1版(九)

    autoware安装与使用:LGsvl Simulator 2021.2.1版(windows10)(九) 介绍如何在windows下安装LGsvl Simulator 2021.2.1版 环境:wi ...

  8. bmp文件头_「正点原子FPGA连载」第十九章SD卡读BMP图片LCD显示

    1)摘自[正点原子]领航者 ZYNQ 之嵌入式开发指南 2)实验平台:正点原子领航者ZYNQ开发板 3)平台购买地址:https://item.taobao.com/item.htm?&id= ...

  9. 浅说——九讲背包之01背包

    所谓九讲,也就是: 0/1背包 0/1背包降维 完全背包 多重背包(二进制优化) 混合背包 二维费用背包 分组背包 有依赖的背包 背包的方案总数\背包的具体方案路径 0/1背包: [问题描述](经典) ...

最新文章

  1. 论一枚数据科学家的自我修养
  2. 28岁适合转嵌入式开发吗?
  3. int p 和int p
  4. 【MCTalk Live】网易对话谷歌:如何成为一个顶50个的A+++++程序员
  5. 计算机组成与结构第二章ppt,计算机组成原理(华科版)第二章 运算方法与运算器.ppt...
  6. 【算法】BitMap
  7. Zookeeper的来源
  8. 程序员应对浏览器同源策略的姿势
  9. RT-Thread I2C设备驱动框架的对接使用
  10. (九)深入浅出TCPIP之网络同步异步
  11. VS Code 主题配置
  12. SQL Server系统数据库–模型数据库
  13. 红外接收头图片_亿光红外线接收头IRM-56384内部构造原理图
  14. 帧中继的基本配置(Basic FrameRealy)
  15. python日期函数_Python日期时间处理: datestuff
  16. 【Unity】关于GPU异步回读Android兼容性问题
  17. Tailwind CSS如何单页面使用并压缩tailwindcss
  18. Oracle 工作语句记录
  19. 视频配音变声用什么软件?这些软件能帮助你
  20. BZOJ 1123: [POI2008]BLO

热门文章

  1. 光流 | 基于LK(Lucas-Kanade)光流算法的运动目标检测
  2. 电路 | 抗干扰技术
  3. IsWindow函数的作用
  4. android分辨率 x y,Android - 确定不同分辨率的位图上的特定位置(X,Y坐标)?
  5. mysql accessdenies_mysql Access denied for user root@localhost错误解决方法总结(转)
  6. pypthon3精要(11)-try,except,else异常处理
  7. PowerBI随笔(7)-lookupvalue、divide
  8. 【深度学习】图解 9 种PyTorch中常用的学习率调整策略
  9. 【机器学习基础】深入讨论机器学习 8 大回归模型的基本原理以及差异!
  10. 【深度学习】你心目中 idea 最惊艳的深度学习领域论文是哪篇?