mfcsdi单文档状态栏进度条启动画面编程技巧

MFC SDI单文档状态栏进度条启动画面编程技巧
祖爱民状态栏的编程离不开CStatusBar类CProgressCtrl  进度条相关的控件下面我们介绍状态栏编程技巧以及在状态栏添加进度条应用程序的启动界面
状态栏的添加步骤SDI 单文档中下面是MFC给的状态栏的创建步骤
Construct the CStatusBar object.
构造一个CStatusBar对象
Call the Create (or CreateEx) function to create the status-bar window and attach it to the CStatusBar object.
调用CreateEx函数创建一个状态栏
Call SetIndicators to associate a string ID with each indicator
调用SetIndicators 为每个指示器附加一个字符串资源ID    static  UINT indicators[]={                                                                                  ........
};
1.      下面是在框架类的处理添加我们自己的状态栏指示器我们可以定义自己的指示器数组油压开关
static UINT indicator[] =
{
ID_SEPARATOR,          // status line indicator  最长的那个格索引为0
ID_INDICATOR_CAPS,    //每个代表一个字符串资源
中产教育鄙视链ID_INDICATOR_NUM,
ID_INDICATOR_SCRL,
......            //这里增加字符串资源会反映到状态栏
};
OnCreate(LPCREATESTRUCTION lp)函数中有如下代码
if (!m_wndStatusBar.Create(this) ||                //创建
!m_wndStatusBar.SetIndicators(indicator,          //设置指示器的个数
sizeof(indicator)/sizeof(UINT)))
{
TRACE0("Failed to create status bar\n");新官场现形记
return -1;      // fail to create
}
2.给状态栏指定ID号的指示器增加时间这时候用到CTime类获得系统时间下面是代码CStatusBar  m_statusBar;  在相应WM_PAINT消息相应函数OnPaint SetTimer(1000,1000,NULL);
捕获WM_TIMER消息在OnTimer函数中添加如下代码
CTime  time=CTime::GetCurrentTime();// 经过静态方法返回一个CTime对象
污染
CString str=time.Format("%H:%M:%S"); //格式化时间到str  CClientDC dc(this);  //创建一个框架类的dc
CSize size=dc.GetTextExtent(str);  //获得字符串中在屏幕上显示的尺寸
int index =m_wndStatusBar.CommandToIndex(IDS_TIMER);  //通过ID获取索引m_wndStatusBar.SetPaneInfo(index,IDS_TIMER,SBPS_);  //设置指示器的宽度
m_wndStatusBar.SetPaneText(index,str); //设置指定索引指示器的文本
3.在状态栏的IDS_PROGRESS上添加一个进度条CProgressCtrl  类在框架类增加变量CProgressCtrl  m_progress;
在OnPaint函数添加代码响应WM_PAINT消息
CRect rect;    //创建CRect对象
m_wndStatusBar.GetItemRect(m_wndStatusBar.CommandToIndex(IDS_PROGRESS) ,&rect); //获得一个指定索引的指示器的矩形区域
if(!m_progress.m_hWnd)  //判断句柄是否为空
{
m_progress.Create(PBS_SMOOTH|WS_CHILD|WS_VISIBLE,rect,&m_wndStatusBar,1 23);    //如果句柄为空那么创建进度条
}
tiammao
else
{
m_progress.MoveWindow(&rect);  //否则移动到当前区域
}
m_progress.SetPos(50);  //设置进度条初始位置50
在OnTimer函数中加上m_stausBar.StepIt();//进度条按指定步长一秒前进一次
4.在最长的指示器上显示视图的X  Y坐标我们需要相应视图的WM_MOUSEMOVE 事件并且调用框架类的函数执行
#include "MainFrm.h"
void CMyView::OnMouseMove(UINT nFlags, CPoint point)
{
CString str="";
str.Format("x=%d,y=%d",point.x,point.y);
//  (((CMainFrame*)GetParent())->m_wndStatusBar).SetWindowText(str);  //直接通过状态栏指针设置索引为0指示器
//      (((CMainFrame*)GetParent())->m_wndStatusBar).SetPaneText(0,str);  //设置按钮文本索引为0
//    ((CMainFrame*)GetParent())->SetMessageText(str);//框架类的函数直接设置索引为0的状态栏指示器文本
// ((CMainFrame*)GetParent())->GetMessageBar()->SetWindowText(str);  //通过框架类函数获得状态栏指针然后调用SetWindowText设置文本
GetParent()->GetDescendantWindow(AFX_IDW_STATUS_BAR)->SetWindowText(str) ;    //CWnd类的函数获得一个子孙窗体的指针我们可以传递状态栏ID获得
CView::OnMouseMove(nFlags, point);
}
5.增加启动画面我们可以利用向导增加之后我们自行设置启动画面的style
project->add to project  ->comments  controls    添加->  vc++  components  -> splash screen  就完成了启动画面的添加
对于启动时间画面我们可以自行在生成的类中设置
下面是赠送的励志的100句经典话,
需要的朋友可以学习下,不需要的朋友可以下载后编辑删除!!谢谢!!
【励志的话】平凡却无私的人啊千万不要抱怨命运的不公。也许,命运只是用另一种方式偏爱着你那是因为善良的她想让你尽快长大感知人间悲喜,聆听世间哀乐。虽然有时跌倒,有时失败但请记住跌
倒不是失败,失败不是否定。平凡却无私的人啊千万不要抱怨命运的不公也许,命运只是用透明的方式倾向与你那是因为,慈爱的她想让你尽早成熟看尽人间繁华,尝便世间甘苦。虽然有时哭泣,有时逃避但请记住哭泣不是永久逃避不是永恒平凡却无私的人啊千万不要抱怨命运的不公也许,命运只是施舍于被它偏爱的人那是因为严厉的她不想让你溺爱长大,感受人们欢呼,享受世界鼓舞虽然有时悲愤,有时无助。但请记住悲愤不是瑕疵,无助只是一时平凡却无私的人啊千万不要抱怨命运的不公也许,命运一直把你视为人生主角那是因为,善辩的她认为你有主宰人生的天赋赢得万千赞扬,胜的万千赞赏虽然没有鲜花,没有掌声。但请记住鲜花无处不在,掌声就在耳畔平凡却无私的人啊千万不要抱怨命运的不公也许,命运一直用纯洁无瑕疵的爱包容着你那是因为,吝啬的她想让你拥有更多享受阳光沐浴,感受雨露滋养虽然没有甜言,更无蜜语。但请记住甜言只是修饰,蜜语一无是处平凡却无私的人啊奋起你不是命运的傀儡,她同样爱你平凡却无私的人啊雄起,你没有被命运束缚,他同样宠你平凡却无私的人啊千万不要抱怨命运的不公尝试去征服命运,如果成功了全世界都会为你喝彩
【励志的话】每个人都是自己命运的设计师和建筑师,要想有所作为,就不能等待幸运降临。世界上什么事都可以发生,就是不会发生不劳而获的事。好的计划会左右运气,甚至能成功地创造运气。要想让自己好运连连,就必须要精心策划运气。设计运气,就是设计人生。所以,以其等待运气来敲门,不如主动出门去他。
【励志的话】人的一生全是靠奋斗,唯有奋斗才能成功。相信自己,我们就是会谱出一段
美妙的音符,来唱出我们心中的那首歌。我是一个经常笑的人,可我不是经常开心的人。所有的爱情不能成,原因是有三:开始不给机会;中间不给空间;结局不给宽容。我相信,真正在乎我的人,是不会被别人抢走的。无论是友情还是爱情。
【励志的话】我渴望生命,渴望生命给予我的情感,我要真正的体现生命的真实。四川的雅安,地震曾经夺去了许多人的生命,那废墟中细微的呼唤,真正的让我感受到了生命的力量,是何等的坚强?活着就有希望,有希望,就有幸福的未来。
【励志的话】少年时代,要有礼赞生命的感恩;青年时代,要有自觉信念的价值;壮年时代,要有活水源头的精进;老年时代,要有愉悦生活的平静。
【励志的话】你的努力,也许有人会讥讽;你的执着,也许不会有人读懂。在别人眼里你也许是小丑,在自己心中你就是国王!
【励志的话】很平凡的生活里,有一颗风雨无阻的心,有一份执着坚定的果敢,年轻的生命里有道很绚烂的彩虹,也有不曾忘怀的伤。但那一切都不重要,如今,我还是在自己的路上,边行边歌,一路阳光。
【励志的话】生命需要用真心演绎,需要尽全力走好每一步,需要用心呵斥,那生命的道路就是美的
极致,每朵花都有其独特的彩,每颗星都有其光芒的璀灿,每缕清风都会送来凉爽,每滴甘露都会滋润原野,都会留下不朽的诗篇。
【励志的话】突破自我对生活的固执,每个人都需要活出新的人生感知,用一份从容的心地,笑看这风来云去,走在这匆匆流年,没有谁能够躲避烦恼的暗伤,在哪里宽恕,就在哪里安稳,在哪里淡然,就在哪里放下,治愈烦恼,而不是隐藏烦恼,因为所有的人生故事都迥然不同,所以更不要输在自己的固执和矫情里。
【励志的话】回首逝去的时光,拼搏过,奋斗过;有辉煌,也有坎坷。在成败交替中,我逐渐成长起来,也终于懂得;人的一生本就是成败同在,风雨并存的过程。现在,带着曾经的失败,带着于失败中增长的成熟,我即将跨入人生的另一阶段,即将面临又一个挑战。【励志的话】因为你的信念中有彩虹的出现,为了这一线希望你也要拼搏到底。即便走到最后你一败涂地,也不会……努力过了,该付出的都付出了,即便没有回报,你也无怨无悔,再这个奋斗。拼搏的过程中,也就是你最大的快乐了。人生成败只不过是过眼云烟。
【励志的话】野心是一份交给未来的倔强承诺,它是平淡无奇的日子里一颗不安分的心,野心也许无法改变你的生活,但它至少可以改变你自己。这不是一个最理想的时代,利益,阶层,一切都在固化;但这肯定属于理想主义者的时代,格局,偶像,一切都在烟消云散,只有野心支撑你走到终点!
【励志的话】对真正的成功者来说,不论他的生存条件如何,都不会自我磨灭自身潜藏的智能,不会自贬可能达到的人生高度。他会锲而不舍地去克服一切困难,发掘自身才能的最佳生长点,扬长避短地、踏踏实实地朝着人生的最高目标坚定地前进!
【励志的话】既然选择了追求,就不要哭泣。坚持一下,扛过今天,幸福就更近一步。真正能把人累垮的,是心里的绝望。
【励志的话】做人除了要天天向上,也要懂得天天向下。天天向下,就是要学会弯腰;就

本文发布于:2024-09-21 15:44:35,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/399701.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:状态栏   生命   人生   命运   指示器   需要   没有
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议