例程实现在状态栏上动态滚动地显示文本信息,效果如图
上位机MFC实现状态栏滚动字幕
程序运行时,界面右下角地文本“工控编程吧 www.gkbc8.com”会来回滚动显示。
主要实现思路是在程序初始化时,创建状态栏,再创建一个文本控件移动到状态栏子面板上。
再启动一定时器不停移动静态文本控件窗口位置。
//创建状态栏
m_StatusBar.Create(this);
//添加状态栏面板
UINT Indicates[4];
for (int i = 0; i<4;i++)
{
Indicates = 50+i;
}
m_StatusBar.SetIndicators(Indicates,4);
CRect rect;
GetClientRect(rect);
UINT PaneWidth = rect.Width()/6;
//设置面板宽度
for(int n = 0;n<3;n++)
{
m_StatusBar.SetPaneInfo(n, 50+n*10, SBPS_NORMAL, PaneWidth);
}
//设置状态栏面板文本
m_StatusBar.SetPaneInfo(3, 111, SBPS_NORMAL, 1000);
m_StatusBar.SetPaneText(0, "用户");
m_StatusBar.SetPaneText(1, "sk");
m_StatusBar.SetPaneText(2, "网址");
RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);
m_Parent.SetParent(&m_StatusBar);
//获取控件的显示区域
m_StatusBar.GetStatusBarCtrl().GetRect(3,Rect);
Rect.DeflateRect(1,1,1,1);
m_Parent.MoveWindow(Rect);
m_Parent.GetClientRect(Rect);
m_Web.GetClientRect(rect1);
m_Web.SetParent(&m_Parent);
m_Parent.GetClientRect(CurRect);
CurRect.DeflateRect(0,1,Rect.Width()-rect1.Width(),1);
m_Web.MoveWindow(CurRect);
SetTimer(1,200,NULL);
void CScrollStatusDlg::OnTimer(UINT nIDEvent)
{
if (CurRect.left>=Rect.right)
{
CurRect.left = Rect.left-rect1.Width();
CurRect.right =Rect.left;
}
else
{
CurRect.left+=4;
CurRect.right+=4;
}
//调整控件位置
m_Web.MoveWindow(CurRect);
}
源代码下载地址
上位机VC MFC程序开发精典实例大全源码与视频讲解配套下载408例 经历1年的编程与录制点击进入查看
如果您认可,可联系功能定制! 如果您着急,充值会员可直接联系发您资料!
|