方法一:
1、添加String Table资源,IDS_PANEL1和IDS_PANEL2的字符串资源。
2、添加成员变量:
public:
CStatusBar m_wndStatusBar;
3、定义
static UINT indicators[]=
{
IDS_PANEL1,
IDS_PANEL2,
};
4、在对话框的初始化过程中添加以下代码:
CRect rect;
GetClientRect(rect);
if(!m_wndStatusBar.Create(this)||
!m_wndStatusBar.SetIndicators(indicators,sizeof(indicators)/sizeof(UINT)))
{
TRACE0("Can't create status bar\n");
return false;
}
m_wndStatusBar.MoveWindow(0,rect.bottom-20,rect.right,20));
m_wndStatusBar.SetPaneText(0,"X:");
m_wndStatusBar.SetPaneText(1,"Y:");
5、如果想自己控制状态中每栏的长度,可以在建立字符串资源的时候用空格来增加长度。
6、如果在OnPaint()函数中重新设备一下位置的话,可以随窗体的变体而变化。
方法2:
这种方法好像不太容易实现随窗体变化而变化。
介绍
如何在对话框中加入状态栏,是许多的初学者想要解决的问题。本文给出了一种实现状态栏的方法,简洁实用。
正文
假设你已经建立了对话框应用程序,
请在对话框初始化的地方加入以下代码,记住别忘了在类中定义一个公有变量CStatusBarCtrl * m_StatusBar
//-----------代码如下---------------------
m_StatusBar = new CStatusBarCtrl;
m_StatusBar->Create(WS_CHILD|WS_VISIBLE|SBT_OWNERDRAW, CRect(0,0,0,0), this, 0);
int strPartDim[4]= {100, 280, 500, -1}; //分割数量
m_StatusBar->SetParts(4, strPartDim);
m_StatusBar->SetText("程序就绪",0,0); //第一个分栏加入"程序就绪",以下类似
m_StatusBar->SetText("欢迎你的光临", 1, 0);
m_StatusBar->SetText("哈哈你好", 2, 0);
m_StatusBar->SetText("郭郭, QQ: 63659875", 3, 0);
//下面是在状态栏中加入图标
m_StatusBar->SetIcon(3,
SetIcon(AfxGetApp()->LoadIcon(IDI_ICON3),
FALSE));//在第四个分栏中加入ID为IDI_ICON3的图标
//----------代码结束---------------------
如果想改变某个分栏项目文字,请调用如下类似代码:
m_StatusBar->SetText("文字内容", 2, 0);
比如,我们想改变第一个分栏的文字内容为“程序繁忙”,代码如下
m_StatusBar->SetText("程序繁忙", 0, 0);
阅读(1938) | 评论(0) | 转发(0) |