VC学习笔记:状态栏

原文链接: http://www.cnblogs.com/skyseraph/archive/2010/11/27/1889952.html

实例学习

1  新建对话框程序

2  为Dlg类添加成员变量数 CStatusBar m_StatusBar;   在对话框上添加进度条控件并关联变量m_Progress

3  在Dlg类OnInitDialg中添加如下代码

/*新建数组*/

UINT array[6];

for(int n=0;n<6;n++)

{

array[n] = 1001 +1;//为数组赋值

}

/*① 创建状态栏*/

m_StatusBar.Create(this);//默认ID

/*② 添加面板*/

m_StatusBar.SetIndicators(array,sizeof(array)/sizeof(UINT));//求数组元素  【方法】

/////参数说明:面板ID、数组元素数量

/*③ 设置面板宽度*/

CRect rect;

GetClientRect(rect);

UINT ParentWidth = rect.Width()/6;

for( int i=0;i<6;i++)//根据面板数循环

{

m_StatusBar.SetPaneInfo(i,array[i],0,ParentWidth);//设置面板宽度

}

/*④  设置面板文本*/

m_StatusBar.SetPaneText(0,"当前用户:");//设置面板文本

m_StatusBar.SetPaneText(1,"Sky");

m_StatusBar.SetPaneText(2,"当前状态:");

//系统时间获取并设置到面板文本上

CTime time = CTime::GetCurrentTime();

m_StatusBar.SetPaneText(4,"当前时间:");

m_StatusBar.SetPaneText(5,time.Format("%Y-%m-%d"));        

/*⑤  显示状态栏*/

RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);//显示状态栏

/////在状态栏上显示控件 【思路】

RECT m_rect;

m_StatusBar.GetItemRect(3,&m_rect);//获得显示控件的面板区域

//参数说明:面板ID、面板的显示区域

m_Progress.SetParent(&m_StatusBar);//设置进度条的父窗口为状态栏

m_Progress.MoveWindow(&m_rect);//

m_Progress.ShowWindow(SW_SHOW);

m_Progress.SetRange(0,30);

m_Progress.SetPos(15);

/////带滚动字幕的状态栏       待补充。。。

。。。

/*⑥ 状态栏随对话框窗口大小而变化*/

//关于此方法请查阅"界面技巧" 之 "控件大小随窗口而调整"

m_Resize.SetOwner(this);

m_Resize.SetResize(AFX_IDW_STATUS_BAR,PK_BOTTOM_LEFT,PK_BOTTOM_RIGHT);//AFX_IDW_STATUS_BAR为状态栏默认的ID

 【思路总结】

创建CStatusBar类变量;创建状态栏create;添加面板setIndicators;设置面板宽度SetPaneInfo;设置面板文本SetPaneText;显示状态栏RepositionBars;状态栏随窗口变化

原文地址:https://www.cnblogs.com/huhu0013/p/4724608.html