MFC状态栏的编程--动态时间,进度栏和鼠标位置显示
来源:互联网 发布:流星蝴蝶剑轻功 知乎 编辑:程序博客网 时间:2024/05/16 04:25
1.状态栏动态时间与进度栏的显示
1.现在资源视图的String Table中创建两个个ID资源,我们给他ID号为:
2.在CMainFrame中找到 static UINT indicators 这个指示器数组在其中加入 ID_TIME
static UINT indicators[] ={ID_SEPARATOR, // status line indicatorID_TIME,ID_JINDU,ID_INDICATOR_CAPS,ID_INDICATOR_NUM,ID_INDICATOR_SCRL,};
3.在CMainFrame 中添加进度栏控件
CProgressCtrl myCtrl;.
4.在CMainFrame中 Add Windows Message Handler 为 WM_PAINT添加句柄响应消息
void CMainFrame::OnPaint() {CPaintDC dc(this); // device context for painting// TODO: Add your message handler code hereCRect rect;m_wndStatusBar.GetItemRect(2,&rect);//获取状态栏中进度栏的窗口位置if(!myCtrl.m_hWnd)//控制进度栏的创建为一次,因为在窗口刷新中会调用OnPaint()重画myCtrl.Create(PBS_SMOOTH | WS_CHILD | WS_VISIBLE ,rect,&m_wndStatusBar,123);//创建进度栏资源位置为rect处,父窗口为状态栏elsemyCtrl.MoveWindow(rect);//窗口发生改变时移动进度栏,确保状态栏中进度条相对位置的稳定myCtrl.SetIt();//画出进度栏中的进度// Do not call CFrameWnd::OnPaint() for painting messages}
5.在 int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) 函数中写入
SetTime(1,1000,NULL); //启动定时器,间隔时间为1秒
6.在CMainFrame中 Add Windows Message Handler 为 WM_TIMER添加句柄响应消息
7.在OnTimer定时器函数中写入响应函数
void CMainFrame::OnTimer(UINT nIDEvent) {// TODO: Add your message handler code here and/or call defaultCTime t = CTime::GetCurrentTime();CString strT=t.Format("%H:%M:%S");CClientDC dc(this);CSize sizeStr=dc.GetTextExtent(strT);m_wndStatusBar.SetPaneInfo(1,ID_TIME,SBPS_NORMAL,sizeStr.cx);m_wndStatusBar.SetPaneText(1,strT,TRUE);myCtrl.StepIt();CFrameWnd::OnTimer(nIDEvent);}
2.鼠标位置在状态栏中的显示
1.在view中 Add Windows Message Handler 为 WM_MOUSEMOVE添加句柄响应消息2.在OnMouseMove函数中写入:
void CLesson9_StyleView::OnMouseMove(UINT nFlags, CPoint point) {// TODO: Add your message handler code here and/or call defaultCString str;str.Format("x=%d,y=%d",point.x,point.y);((CMainFrame*)GetParent())->SetMessageText(str);CView::OnMouseMove(nFlags, point);}
第一次写博,如有不周之处,敬请谅解!
0 0
- MFC状态栏的编程--动态时间,进度栏和鼠标位置显示
- 状态栏的编程(时间状态栏,进度状态栏)
- MFC:在状态栏上显示鼠标当前的位置
- MFC在状态栏的窗格上显示进度栏
- 状态栏显示鼠标位置
- MFC状态栏编程(显示系统时间和进度条)
- MFC 实现 状态栏动态显示系统时间
- MFC状态栏显示时间
- MFC状态栏显示时间
- mfc编程时相让鼠标的坐标显示在状态栏上
- 为什么状态栏不显示鼠标按下的键和位置?
- MFC:在状态栏最左边显示鼠标当前的坐标
- MFC:在状态栏最左边显示鼠标当前的坐标
- MFC状态栏的编程(以显示系统当前时间为例)
- 在MFC状态栏显示时间
- 在MFC状态栏显示时间
- 在MFC状态栏显示时间
- 在MFC状态栏显示时间
- 我的助理辞职了(原文)
- The Google File System中文版附英文资源链接(下)
- 线程之路五:消费者生产者
- unity实现窗口提示代码
- JAVA集合笔记
- MFC状态栏的编程--动态时间,进度栏和鼠标位置显示
- list.h链表练习
- 面试智力题 — 时针与分针夹角度数问题
- eclipse tomcat 直接启动
- sql 2008 远程过程调用失败 0x800706be
- 地址格式 inet_pton() int_ntop()
- Oracle中有效小数处理
- java连接MySql数据库
- 一个数的分解连续的自然数