QQ登录

只需一步,快速开始

17.上位机VC MFC实现状态栏字幕滚动效果

[ 复制链接 ]
状态栏字幕滚动效果

功能展示
在我们现实生产中,常在汽车站,火车站等公共场所,看见大屏幕上,广告文字以滚动形式,引起人们目光的注意,这里我们来实现滚动字幕,
更好引起程序用户的注意。效果如图

17.上位机VC MFC实现状态栏字幕滚动效果

17.上位机VC MFC实现状态栏字幕滚动效果

要点提示
我们当前功能,仅利用了一个小技巧,就是定义一个CString   m_StatusText做为状态栏滚动文字。起动一定时器,用定时器更改m_StatusText的内容后再设置状态栏文字便可,关键一点是如何更改m_StatusText的内容而已,下面我们来看下具体的实现过程
实现功能
•1.新建一个对话框应用程序

•2.在对话框资源中添加CStatusBar m_StatusBar;  //状态栏

•  CString   m_StatusText; //状态栏滚动文字

•  BOOL      m_bDirect;    //滚动文字左右方向标识

•3.在对话框OnInitDialog()中对这三变量初始化,及启动一个定时器


•//状态栏初始化

•  m_StatusText.Format("%s","gkbc8.com");//状态栏显示用文字初始化;

•  m_StatusBar.Create(this);//创建状态栏

•  UINT Indicates[4];

&#8226;  for(int i = 0; i<4;i++)

&#8226;  {Indicates= 50+i;

&#8226;  }

&#8226;  m_StatusBar.SetIndicators(Indicates,4);//添加状态栏面板

&#8226;  CRect rect;

&#8226;  GetClientRect(rect);

&#8226;  UINTPaneWidth = rect.Width()/6;

&#8226;  for(intn = 0;n<3;n++)

&#8226;  {

&#8226;  m_StatusBar.SetPaneInfo(n,50+n*10,SBPS_NORMAL,PaneWidth);//设置面板宽度

&#8226;  }

&#8226;  //设置状态栏面板文本

&#8226;  m_StatusBar.SetPaneInfo(3,111,SBPS_NORMAL,600);

&#8226;  m_StatusBar.SetPaneText(0,"滚动字幕功能");

&#8226;  m_StatusBar.SetPaneText(1,"工控编程吧");

&#8226;  m_StatusBar.SetPaneText(2,"网址:");

&#8226;  m_StatusBar.SetPaneText(3,m_StatusText);

&#8226;  m_StatusBar.GetStatusBarCtrl().SetMinHeight(40);//设置状态栏高度

&#8226;  RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);  

&#8226;4.添加定时器的消息处理OnTimer(UINT nIDEvent)

&#8226;

&#8226;void CGkbc8Dlg::OnTimer(UINTnIDEvent)

&#8226;{

&#8226;  CRectrect;

&#8226;  CStringsText;

&#8226;  CDC*pDC;

&#8226;  CSizesz,sz1;

&#8226;  pDC= m_StatusBar.GetDC();

&#8226;  m_StatusBar.GetPaneText(3,sText);

&#8226;

&#8226;  sz=pDC->GetTextExtent(sText);

&#8226;  sz1=pDC->GetTextExtent(m_StatusText);

&#8226;  m_StatusBar.GetStatusBarCtrl().GetRect(3,rect);

&#8226;  if(m_bDirect)//执行向右移

&#8226;  {

&#8226;  if(sz.cx<=rect.Width())

&#8226;  {sText.Insert(0,"  "); }

&#8226;  elsem_bDirect = FALSE;//

&#8226;  }

&#8226;  else

&#8226;  {

&#8226;  if(sz.cx>sz1.cx)  sText=sText.Right((sText.GetLength()-2));

&#8226;  else  m_bDirect = TRUE;

&#8226;  }

&#8226;  m_StatusBar.SetPaneText(3,sText);

&#8226;  CDialog::OnTimer(nIDEvent);

&#8226;}


&#8226;  m_bDirect= TRUE;

&#8226;  SetTimer(1,200,NULL);



演示功能实现的整个过程





源码及视频下载

请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:17.上位机VC MFC实现状态栏字幕滚动效果.rar 
文件大小:123.67 KB  售价:10金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我

  

您的支持是我们创作的动力!  

  

您可花点闲钱积分自助任意充值

  

成为VIP会员 全站资源任意下载永久更新!




回复

使用道具 举报

点击查看
快速回复 返回列表 客服中心 搜索