网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
在状态条中显示进程状态
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式
reated,该变量用来标志CProgressCtrl控件是否成功进行创建。

  6、在源文件MainFrm.cpp的OnCreate()函数中,初始化m_bCreated 为 FALSE,如下所示:

   m_bCreated = FALSE;

  7、模拟一个耗时过程函数OnSomeLongProcess()来演示状态条中的进程状态格。这里简单地采用睡眠函数来模拟一个耗时过程。函数代码见程序1。

  void CMainFrame::OnSomeLongProcess()

  {

   RECT MyRect;

   // substitute 1 with the zero-based index of your status bar pane. For example, if you put your

  // pane first in the indicators array, you put 0, second you put 1, etc.

   m_wndStatusBar.GetItemRect(1, &MyRect);

   if (m_bCreated == FALSE)

   {

   //Create the progress control

   m_Progress.Create(WS_VISIBLE|WS_CHILD, MyRect, &m_wndStatusBar, 1);

   m_Progress.SetRange(0,100); //Set the range to between 0 and 100

   m_Progress.SetStep(1); // Set the step amount

   m_bCreated = TRUE;

   }

   // Now we''ll simulate a long process:

   for (int I = 0; I <100; I++)

   {

   Sleep(20);

   m_Progress.StepIt();

   }

  }

  

  8、状态条中的进程状态格创建成功后,如果应用程序主窗口尺寸发生变化,则进程状态格的大小不会自动适应主窗口的变化,因此需要重载主窗口的OnSize()函数。通过 ClassWizard在主窗口中增加WM_SIZE消息映射函数,如图3所示。

  (图注ZHUANG-3) 图3 利用ClassWizard在CmainFrame中增加WM_SIZE消息映射函数

  具体的源代码见程序2。

  void CMainFrame::OnSize(UINT nType, int cx, int cy)

  {

   CFrameWnd::OnSize(nType, cx, cy);

   // TODO: Add your message handler code here

   if(m_bCreated == TRUE){

   RECT rc;

   m_wndStatusBar.GetItemRect(1, &rc);

   // Reposition the progress control correctly!

   m_Progress.SetWindowPos(&wndTop, rc.left, rc.top, rc.right -

   rc.left,

   rc.bottom - rc.top, SWP_SHOWWINDOW);

   }

  }

  9、打开资源编辑器,在“查看”菜单下增加"Test"菜单命令,ID设为ID_TEST。然后利用ClassWizard增加一条消息映射函数OnTest(),代码如下:

  

  void CMainFrame::OnTest()

  {

   // TODO: Add your command

   handler code here

   OnSomeLongProcess();

  在完成所有上述步骤后,编译并运行程序。选择“查看”菜单下的"Test"菜单命令就会看到状态条中的进程状态格的进程显示情况,如图4所示。

  (图注ZHUANG-4) 图4 状态条中的进程状态格的进程显示

  上面我们用一个简单的睡眠函数模拟了耗时过程中状态条的进程状态格的显示情况。在实际应用中我们只需将源码中的OnSomeLongProcess()函数替换成相应的耗时过程函数即可。

  (作者地址:武汉华中理工大学电子科学与技术系 430074 收稿日期:1999.5.28)

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号