工控编程吧
标题:
上位机MFC实现状态栏滚动字幕
[打印本页]
作者:
qq263946146
时间:
2019-7-18 09:21
标题:
上位机MFC实现状态栏滚动字幕
例程实现在状态栏上动态滚动地显示文本信息,效果如图
(, 下载次数: 0)
上传
点击文件名下载附件
程序运行时,界面右下角地文本“工控编程吧
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);
}
源代码下载地址
(, 下载次数: 0)
上传
点击文件名下载附件
[MFC408]1[/MFC408]
[weixinlianxi]1[/weixinlianxi]
[note]1[/note]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4