MFC的状态栏CStatusBar编程
来源:互联网 发布:多空对比资金指标源码 编辑:程序博客网 时间:2024/06/12 23:53
MFC的状态栏CStatusBar编程
1. 新建一个多文档的MFC应用程序;
2. 状态栏的定义:在CMainFrame类中定义,如下:
protected: // control bar embedded members
CStatusBar m_wndStatusBar;
3. 在CMainFrame类的OnCreate函数里,生成状态栏:
//////////////////////////////////////////////////////////////////////////
//状态栏
if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("Failed to create status bar\n");
return -1; // fail to create
}
注意,上述有一个变量indicators;它是一个静态的一个数组,它的定义是有MFC自动生成的;具体代码如下:
//////////////////////////////////////////////////////////////////////////
static UINT indicators[] =
{
ID_SEPARATOR, // status line indicator
ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
ID_INDICATOR_SCRL,
};
说明:indicators存放的是字符串的ID 号;不同的ID号,对应不同的字符串;
如果想要在右下角的状态栏上继续添加状态栏,可以先新建一个字符串的资源,设置相应的ID号;将该ID号添加到indicators数组中即可;
比如:我们新建两个字符串资源,属性为 IDS_PROCESS 进度 IDS_TIME 时间 ;然后将它们的ID号加入到indicators数组中;运行即可;
4. 在状态栏实时显示系统时间
很明显,实时显示需要动态每隔一秒钟显示一下时间,因此需要用到WM_TIME消息响应;因此对CMainFrame类增加WM_TIME消息响应;
4.1 在类的OnCreate函数中,设置定时器周期; SetTimer(1,1000,NULL);
4.2 在OnTimer函数中添加如下代码:
CTime time=CTime::GetCurrentTime();//获得当前时间
CString str="时间"+time.Format("%H-%M-%S");//将时间转化为字符串
int index=0;//定义一个整型变量,用于存储字符串资源的ID,初始化为0
index=m_wndStatusBar.CommandToIndex(IDS_TIME);
//一下是为了获得字符串STR的空间大小,是str字符串完整的呈现出来;
CClientDC dc(this);
CSize zs=dc.GetTextExtent(str);//获得str字符串画出来时的大小
m_wndStatusBar.SetPaneInfo(index,IDS_TIME,SBPS_NORMAL,zs.cx);//设置索引为index的状态栏的宽度
m_wndStatusBar.SetPaneText(index,str,TRUE);//将含有时间的str字符串显示在状态栏上;
- MFC的状态栏CStatusBar编程
- MFC中状态栏CStatusBar的使用
- MFC-CStatusBar(状态栏)
- MFC:CStatusBar的用法
- MFC对话框CDialog中使用CStatusBar状态栏
- MFC之状态栏操作CStatusBar类
- Windows编程基础--第17节 MFC之状态栏(CStatusBar)
- MFC状态栏的编程
- MFC--CStatusBar
- 状态栏以及CStatusBar类
- "-"状态栏(CStatusBar)汇总文件
- MFC状态栏的编程(SDI)
- MFC控件 状态条的简单介绍及使用 CStatusBar
- MFC控件 状态条的简单介绍及使用 CStatusBar
- MFC控件 状态条的简单介绍及使用 CStatusBar
- MFC中的状态栏编程
- MFC状态栏编程
- MFC状态栏编程
- Java反射机制详解
- 是谁盗走了我的梦想??
- 页面使用base标签与JS冲突
- Windows 2000错误代码和提示
- Oracle数据块的学习
- MFC的状态栏CStatusBar编程
- .Net程序员,被微软套牢了没
- 2011年度总结——职位的转变
- 所谓多态本质
- Java之父评价C语言之父:我用尽了形容词
- 无法打开预编译头文件的解决方法
- RedHat5.4安装软件时提示:cannot create transaction lock on /var/lib/rpm/_db.000
- SQL SERVER DATETIME 常用日期格式转换
- 显示桌面.scf