MFC对话框CDialog中使用CStatusBar状态栏
2011-01-03 11:24
405 查看
在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也可以勉强接受。
CRect rect; GetClientRect(rect); static UINT indicators[]={ ID_SEPARATOR }; 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);// 调整状态栏的位置和大小
如果需要添加项目,只需要在indicators数组中添加ID即可,需要注意的是:为了避免与程序中菜单项或其它项目ID重复,最好在资源中添加一个STRINGTABLE,并在STRINGTABLE中添加字符串ID,以保证ID的唯一性。
如果需要在状态栏上显示大小写、数字状态,需要在indicators数组中加上ID_INDICATOR_CAPS、ID_INDICATOR_NUM,只使用如上的方法,你将发现状态栏上始终为大写、数字状态。若要正常显示,则还需要如下操作:
1. 声明一个OnUpdateKeyIndicator函数来响应UPDATE_CMDUI消息,函数如下:
void CMFCDlg::OnUpdateKeyIndicator(CCmdUI* pCmdUI) { UINT nVK; switch (pCmdUI->m_nID) { case ID_INDICATOR_CAPS: nVK = VK_CAPITAL; break; case ID_INDICATOR_NUM: nVK = VK_NUMLOCK; break; case ID_INDICATOR_SCRL: nVK = VK_SCROLL; break; default: TRACE(_T("Warning: OnUpdateKeyIndicator - unknown indicator 0x%04X/n"), pCmdUI->m_nID); pCmdUI->ContinueRouting(); return; } pCmdUI->Enable(::GetKeyState(nVK) & 1); ASSERT(pCmdUI->m_bEnableChanged); }
2. 将函数与消息关联起来,在消息地图中添加如下响应:
ON_UPDATE_COMMAND_UI(ID_INDICATOR_CAPS, &CMFCDlg::OnUpdateKeyIndicator)
ON_UPDATE_COMMAND_UI(ID_INDICATOR_NUM, &CMFCDlg::OnUpdateKeyIndicator)
3. 在需要更新的时候调用CStatusBar成员的OnUpdateCmdUI函数。如果不确定什么时候更新,用TIMER也可以勉强接受。
相关文章推荐
- MFC的对话框工具栏、状态栏、和菜单栏的编辑
- MFC文件选择对话框CFileDialog的使用
- MFC公用对话框的使用
- 使用MFC在一对话框中嵌入另一对话框
- 在MFC中使用按下按钮出现选择文件对话框,选中一个指定文件,并将其地址显示到指定的编辑框中
- MFC 基于对话框 程序,如何添加状态栏
- 如何在MFC中创建和使用对话框
- MFC开发IM-第十六篇、如何使用其他对话框的变量
- 给MFC对话框设置状态栏
- MFC对话框中使用CHtmlEditCtrl
- MFC学习笔记--将对话框收获的输入在View中使用
- MFC:状态栏的使用
- MFC MFC对话框滚动条的使用
- MFC状态栏的使用详解
- MFC对话框滚动条的使用
- 在使用Ribbon的MFC程序状态栏中显示鼠标坐标值
- MFC中颜色选择对话框的使用
- MFC 状态栏,进度条的使用
- 在MFC对话框中使用Google地图
- 在使用Ribbon的MFC程序状态栏中显示鼠标坐标值