MFC 添加状态栏
来源:互联网 发布:c语言中产生随机数 编辑:程序博客网 时间:2024/05/01 14:10
如果我们想实现在MFC对话框中添加状态栏显示,如何例如分状态栏为两列,第一列显示鼠标的当前位置,第二列显示当前的时间,(如上图)。
1. 首先,打开在资源视图的String Table并添加两个ID:ID_INDICATOR_NISH 和ID_INDICATOR_TIME,如下图
2. 在该对话框的头文件中添加一个CStatusBar类对象
- <span style="font-size:16px;">CStatusBar m_bar;</span>
- <span style="font-size:16px;">static UINT BASED_CODE indicators[]=
- {
- ID_INDICATOR_NISH,
- ID_INDICATOR_TIME
- };
- </span>
- <pre name="code" class="cpp"><span style="font-size:16px;">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);</span><pre name="code" class="cpp"><span style="font-size:16px;">m_bar.SetPaneInfo(1, ID_INDICATOR_TIME, SBPS_STRETCH, 0);</span></pre><span style="font-size:16px">//在ping屏幕上绘制状态栏</span>
- <pre></pre>
- <pre name="code" class="cpp"><span style="font-size:16px;">RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, ID_INDICATOR_TIME);</span></pre><span style="font-size:16px"><br>
- </span>
- <pre></pre>
- <p></p>
- <pre></pre>
- <span style="font-size:16px">5. 至此,对话框上的状态栏创建已经成功了。若是用户喜欢,可以单独设置状态栏背景颜色,</span>
- <p></p>
- <p><span style="font-size:16px">可以在OnInitDialog()函数中添加代码:</span></p>
- <pre name="code" class="cpp"><span style="font-size:16px;">m_bar.GetStatusBarCtrl().SetBKColor(RGB(180,180,180));</span></pre>
- <p></p>
- <p><span style="font-size:16px">6. 添加时钟显示。首先在OnInitDialog()中添加</span></p>
- <p></p>
- <pre name="code" class="cpp"><span style="font-size:16px;">SetTimer(100,1000,NULL);</span></pre>
- <p></p>
- <p><span style="font-family:monospace"><span style="white-space:pre"><span style="font-size:18px">之后添加WM_TIMER的相应函数:</span></span></span></p>
- <p><span style="font-family:monospace"><span style="font-size:16px"><span style="white-space:pre"></span></span></span></p>
- <pre name="code" class="cpp"><span style="font-size:16px;">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);
- }</span></pre><span style="font-size:16px">7. 添加XY坐标显示。重写函数OnMouseMove():</span>
- <p></p>
- <p><span style="font-family:monospace"><span style="font-size:16px"><span style="white-space:pre"></span></span></span></p>
- <pre name="code" class="cpp"><span style="font-size:16px;">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);
- }</span></pre><span style="font-size:16px"><br>
- 至此,编译运行程序,就可以看到预期的效果了。</span><span style="font-size:16px"><br>
- <br>
- </span><br>
- <br>
- <p></p>
- <div><span style="font-family:monospace; white-space:pre; background-color:rgb(240,240,240); font-size:16px"><br>
- </span></div>
- <div><span style="font-family:monospace; white-space:pre; background-color:rgb(240,240,240); font-size:16px"><br>
- </span></div>
- <pre></pre>
- <pre></pre>
- </pre>
0 0
- MFC对话框添加状态栏
- MFC 状态栏添加新窗口
- MFC对话框添加状态栏
- MFC 添加状态栏
- MFC添加状态栏
- MFC对话框添加状态栏
- 在MFC对话框中添加状态栏
- 在MFC对话框中添加状态栏
- 在MFC对话框中添加状态栏
- MFC 基于对话框 程序,如何添加状态栏
- MFC框体添加菜单栏工具栏状态栏
- MFC框体添加菜单栏工具栏状态栏
- MFC中添加状态栏总结说明
- MFC中状态栏的添加步骤
- MFC之为对话框窗口添加状态栏
- MFC 基于对话框 程序,如何添加状态栏
- 基于对话框MFC程序添加状态栏
- MFC对话框的状态栏添加进度条
- DispatchMessage是异步的吗
- Oracle基础知识(二十) - 临时表
- 算法java实现--分支限界法--0-1背包问题
- test
- 欧拉项目005:最小公倍数
- MFC 添加状态栏
- F# 20分钟快速上手(一)
- java中返回临时对象的问题,求大神破解
- 让金山词霸在 Adobe Reader XI 的 PDF 中取词
- CSS 内阴影
- 分享--linux 学习之路(学linux必看)
- 拼表隐藏第二也表头
- 特信发布超导LTE射频前端系统 大幅改进LTE基站性能
- user_default/CCUserDefaultAndroid