您的位置:首页 > 其它

MFC——在状态栏中显示滚动字幕

2011-03-21 15:53 225 查看
记录学习的点点滴滴,这次主要是写的MFC中实现在状态栏中实现滚动的字幕,实现很简

单,和大家分享一下我的代码。

建立一个对话框程序,在OnInitDialog函数添加如下代码,同时在类中添加一个CStatusBar

状态栏的对象。

// TODO: 在此添加额外的初始化代码
SetWindowText("状态栏显示滚动字幕");

UINT Array[3];
for (int i = 0; i < 3; ++i)
{
Array[i] = 100 + i; //状态栏面板ID
}

m_statusBar.Create(this); //创建面板
m_statusBar.SetIndicators(Array, sizeof(Array) / sizeof(UINT)); //添加面板

for (int n = 0; n < 3; ++n)
{
m_statusBar.SetPaneInfo(n, Array
, 0, 130); //设置面板宽度
}
m_statusBar.SetPaneInfo(2, Array[2], 0, 800);

//设置面板文本
m_statusBar.SetPaneText(0, "当前用户");
m_statusBar.SetPaneText(1, "GuoDong Young");
m_statusBar.SetPaneText(2, "                                              满目山河空念远");
RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);

SetTimer(1, 1000, NULL); //设置定时器


然后再添加定时器函数。

void CCStatusBar_2Dlg::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CString sText;
int len;

m_statusBar.GetPaneText(2, sText);
len = sText.GetLength();

sText = sText.Right(len - 2);
m_statusBar.SetPaneText(2, sText); //设置显示字符

if (len <= 0)
{
m_statusBar.SetPaneText(2,"                                           满目山河空念远");
}

CDialog::OnTimer(nIDEvent);
}


好了,就是这样了,很简单吧啊。这就是在状态栏中实现滚动的字幕。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: