MFC对话框增加状态栏 以及设置状态栏滚动字幕

对话框初始化函数 中

static UINT indicators[]=
{
IDS_ALL,
IDS_TIMER,
IDS_STATUS
};

CRect rect;
GetClientRect(rect);//获得客户区域大小
if(!m_wndStatusBar.Create(this)||
!m_wndStatusBar.SetIndicators(indicators,sizeof(indicators)/sizeof(UINT)))
{
TRACE0("Can't create status bar\n");
return false;
}

UINT nID,nStyle;
int nWidth1,nWidth2; //保存IDS_TIMER, IDS_STATUS宽度
int index1=this->m_wndStatusBar.CommandToIndex(IDS_ALL); //获得 索引
int index2=this->m_wndStatusBar.CommandToIndex(IDS_TIMER); 获得索引
int index3=this->m_wndStatusBar.CommandToIndex(IDS_STATUS);//....
m_wndStatusBar.GetPaneInfo(index2,nID,nStyle,nWidth1); //获得索引对应的宽度
m_wndStatusBar.GetPaneInfo(index3,nID,nStyle,nWidth2);//.....
this->m_wndStatusBar.SetPaneInfo(index1,nID,nStyle,rect.Width()-nWidth1-nWidth2-25) ;//设置 第一格的长度
RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0); //重新摆放控件 因为增加状态栏之后 控件相对位置发生变化 重新摆放才能显示出来
str=_T(" 欢迎使用使用本软件..........."); //使用 UNICODE 设置字幕文本 可以做成一个函数动态的改变 滚动字幕的文本
m_wndStatusBar.SetPaneText(0,str); //设置文本index=0处的
SetTimer(111,500,NULL); //设置定时器

下面进入 WM_TIMER消息响应函数


void CMyDlg::OnTimer(UINT nIDEvent)
{

static int index=0;//一个用于标示字体长度
if(index<0)
index=str.GetLength();//如果index<0那么 我们将index设置为字体长度
m_wndStatusBar.SetPaneText(0,str.Right(index));
index-=2;//index-2

CDialog::OnTimer(nIDEvent);
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值