在MFC对话框中添加状态栏
来源:互联网 发布:微软雅黑字体 mac 编辑:程序博客网 时间:2024/03/28 17:53
如果我们想实现在MFC对话框中添加状态栏显示,如何例如分状态栏为两列,第一列显示鼠标的当前位置,第二列显示当前的时间,(如上图)。
1. 首先,打开在资源视图的String Table并添加两个ID:ID_INDICATOR_NISH 和ID_INDICATOR_TIME,如下图
2. 在该对话框的头文件中添加一个CStatusBar类对象
CStatusBar m_bar;
static UINT BASED_CODE indicators[]={ ID_INDICATOR_NISH, ID_INDICATOR_TIME};
4. 接下来创建状态栏,在OnInitDialog()函数如下代码:m_bar.Create(this);//创建状态栏m_bar.SerIndicators(indicators, sizeof(indicators)/sizeof(UINT)); //设置状态栏数目CRect rect;GetClientRect(&rect);//设置各栏长度m_bar.SetPaneInfo(0, ID_INDICATOR_NISH, SBPS_NORMAL, rect.Width()-100);m_bar.SetPaneInfo(1, ID_INDICATOR_TIME, SBPS_STRETCH, 0);
//在ping屏幕上绘制状态栏RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, ID_INDICATOR_TIME);
5. 至此,对话框上的状态栏创建已经成功了。若是用户喜欢,可以单独设置状态栏背景颜色,可以在OnInitDialog()函数中添加代码:
m_bar.GetStatusBarCtrl().SetBKColor(RGB(180,180,180));
6. 添加时钟显示。首先在OnInitDialog()中添加
SetTimer(100,1000,NULL);
之后添加WM_TIMER的相应函数:
void CDlgStatusBarDlg::OnTimer(UINT nIDEvent){ if(nIDEvent==100) { CTime t1; t1=CTime::GetCurrentTime(); m_bar.SetPaneText(1,t1.Format("%H:%M:%S")); } CDialog::OnTimer(nIDEvent);}
7. 添加XY坐标显示。重写函数OnMouseMove():void CDlgStatusBarDlg::OnMouseMove(UINT nFlags, CPoint point) { CString s; s.Format("X=%d Y=%d",point.x,point.y); m_bar.SetPaneText(0,s); CDialog::OnMouseMove(nFlags, point);}
至此,编译运行程序,就可以看到预期的效果了。
- 在MFC对话框中添加状态栏
- 在MFC对话框中添加状态栏
- 在MFC对话框中添加状态栏
- MFC对话框添加状态栏
- MFC对话框添加状态栏
- MFC对话框添加状态栏
- 在基本对话框中添加状态栏
- 对话框中添加状态栏
- 如何在MFC对话框中添加背景图片
- MFC 在对话框中添加WM_ERASEBKGND响应函数
- 在MFC对话框中添加菜单
- MFC 在对话框中添加工具条
- 在MFC(VS2013)对话框中添加菜单
- MFC对话框添加菜单、状态栏,并在状态栏显示菜单提示信息
- 在对话框上添加状态栏
- VC++ 对话框中添加状态栏
- 对话框中添加状态栏方法:
- MFC 基于对话框 程序,如何添加状态栏
- C#编程中的66个好习惯
- 实战jquery(2)-自建可拖拽模态对话框
- 关于Linux操作系统下C语言编程注意事项
- base-file
- virtualBox 与 centos 实现文件共享
- 在MFC对话框中添加状态栏
- base-find
- “四要”:饭要吃 拳要打 字要写 码要编
- 3g调试 TC35(i)上电后会自动发送 ^SYSSTART表示模块已启动
- 重置TCP/IP协议解决Windows Server 2008连接中断问题
- 切勿让死链纠缠上你
- CE6下兼容和非兼容位图的深入分析
- 如何在网上获得顾客忠诚
- Redis源代码分析之三:散列表——Dict(下)