在MFC的通用对话框中使用状态栏,只需要在对话框成员中增加一个CStatusBar类型的成员变量,然后在OnInitDialog函数中添加如下代码:
如果需要添加项目,只需要在indicators数组中添加ID即可,需要注意的是:为了避免与程序中菜单项或其它项目ID重复,最好在资源中添加一个STRINGTABLE,并在STRINGTABLE中添加字符串ID,以保证ID的唯一性。
如果需要在状态栏上显示大小写、数字状态,需要在indicators数组中加上ID_INDICATOR_CAPS、ID_INDICATOR_NUM,只使用如上的方法,你将发现状态栏上始终为大写、数字状态。若要正常显示,则还需要如下操作:
1. 声明一个OnUpdateKeyIndicator函数来响应UPDATE_CMDUI消息,函数如下:
2. 将函数与消息关联起来,在消息地图中添加如下响应:
ON_UPDATE_COMMAND_UI(ID_INDICATOR_CAPS, &CMFCDlg::OnUpdateKeyIndicator)
ON_UPDATE_COMMAND_UI(ID_INDICATOR_NUM, &CMFCDlg::OnUpdateKeyIndicator)
3. 在需要更新的时候调用CStatusBar成员的OnUpdateCmdUI函数。如果不确定什么时候更新,用TIMER也可以勉强接受。