visual c++中向对话框中添加状态栏
向对话框中添加状态栏
状态栏也是一种常用的用户图形界面,与工具栏一样,在CDialog类的派生类中添加状态栏也有两种方法。
第一种方法:
步骤:
(1)通过AppWizard新建一个基于对话框的项目Main。
(2)在对话框资源中单击鼠标右键,在弹出的快捷菜单上选择“Properties”菜单项,打开“Dialog Properties”对话框。
(3)在“Dialog Properties”对话框中将“Caption”文本框的内容改为“在对话框中添加状态栏(CStatusBar)”。
(4)在对话框类CMain中添加一个成员变量 CStatusBar m_StatusBar。
(5)在对话框的OnInitDialog()成员函数中添入以下代码:
BOOL CDMain::OnInitDialog()
{
CDialog::OnInitDialog();
……
if (!m_StatusBar.Create(this) ||
!m_StatusBar.SetIndicators(indicators,
//http://www.isstudy.com
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("Failed to create status barn");
return -1; // fail to create
}
RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);
m_StatusBar.ShowWindow(SW_SHOW);
return true;
}
(6)按Ctrl+F5运行程序,结果如图1所示。
新添加的状态栏(CstatusBar)类对象
类对

图1 使用CStatusBar向对话框中添加工具栏
第二种方法:
步骤:
(1)通过AppWizard新建一个基于对话框的项目Main。
(2)在对话框资源中单击鼠标右键,在弹出的快捷菜单上选择“properties”菜单项,打开“Dialog Properties”对话框。
(3)在“Dialog Properties”对话框中将“Caption”文本框的内容改为“在对话框中添加状态栏(CStatusBarCtrl)”。
(4)在对话框类CMain中添加一个成员变量 CStatusBarCtrl m_StatusBar。
(5)在对话框的OnInitDialog()成员函数中添入以下代码:
BOOL CDMain::OnInitDialog()
{
CDialog::OnInitDialog();
……
m_StatusBar.EnableAutomation();
m_StatusBar.Create(WS_CHILD|WS_VISIBLE,CRect(0,0,0,0),this,ID_STATUSBAR);
CRect rect;
this->GetClientRect(&rect);
int width[4];
width[1]=rect.Width()*0.2;
width[2]=rect.Width()*0.74;
width[3]=rect.Width()*0.86;
width[4]=rect.Width();
CString sText;
sText=" 明日科技";
m_StatusBar.SetParts(4,&width[1]);
m_StatusBar.SetText(sText,0,0);
// http://www.isstudy.com
return true;
)
(6)按Ctrl+F5运行程序,结果如图2所示。
新添加的状态栏(CstatusBarCtrl)类对象
类对

图2 使用CStatusBarCtrl向对话框中添加工具栏