在状态条中显示进度条?

cclwxm_cn 2001-03-14 10:27:00
我想在状态条中显示一个进度条,在ON_UPDATE_COMMAND_UI消息映射函数中添加了以下代码:
int nIndex = m_wndStatusBar.CommandToIndex(ID_INDICATOR_PROGRESS);
CRect rect;
m_wndstatusBar.GetItemRect(nIndex,&rect);
CWnd * pwndStatus = m_wndStatusBar.FromHandlePermanent(m_wndStatusBar.m_hWnd);
m_Progress.Create(WS_VISIBLE | WS_CHILD, rect,pwndStatus, ID_STATUS_PROGRESS);
可是运行的时候却出现错误。请问怎样改写代码才能在状态条中显示一个进度条。另外我察MSDN时发现没有AFX_IDW_STATUS_BAR这个标识符,但是有AFX-IDW-TOOLBAR标识符。在VC中使用AFX_IDW_STATUS_BAR时,说这是个没定义的变量,那么,状态条的默认标识符是什么,怎样才能正确的得到状态条的CWnd指针?
...全文
181 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
knl 2001-03-17
  • 打赏
  • 举报
回复
看到了吗?
knl 2001-03-17
  • 打赏
  • 举报
回复
你感兴趣给我发EMIL :KKKSOFT@163.NET
我知道该怎么做!
cclwxm_cn 2001-03-16
  • 打赏
  • 举报
回复
没人知道吗?
cclwxm_cn 2001-03-16
  • 打赏
  • 举报
回复
如果我想在程序加载时就让进度条显示在状态条中,请问我应该处理哪一条消息,怎样添加代码?
shl_gy 2001-03-15
  • 打赏
  • 举报
回复
1。在Visual Studio的工作台中,选择"View"菜单下的"Resource Symbols"菜单命令,弹出对话框后点击"New"按钮,增加一条新的符号ID_ INDICATOR_PROGRESS_PANE并采用系统分配的缺省ID值
2。
static UINT indicators[] =

  {

   ID_SEPARATOR, //

   status line indicator

   ID_INDICATOR_PROGRESS_PANE, //

   means the progress pane in

   far left.

   ID_INDICATOR_CAPS,

   ID_INDICATOR_NUM,

   ID_INDICATOR_SCRL,

  };
3。
打开资源编辑器,选择字符串表,单击鼠标右键,选择"New String"命令(或者通过工作台的"Insert"菜单选择"New String"命令),弹出字符串属性编辑对话框如图2所示。在String prorties对话框的ID栏中键入符号ID_INDICATOR_PROGRESS_ PANE,在Caption编辑栏键入空格。注意空格的多少将决定状态条中进程状态格的长度。
4。
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);

panda_w 2001-03-15
  • 打赏
  • 举报
回复
状态栏的ID是CStatusBar::Create函数设置的.该函数由派生框架类的OnCreate函数调用,它的
第三个参数就是其ID,被默认为AFX__IDW_STATUS_BAR,怎会没有定义变量呢?
panda_w 2001-03-15
  • 打赏
  • 举报
回复
这里有很多的怎样在状态条中显示进度条的文档.
http://www.vckbase.com/document/statusbar/index.html
xiaolizi 2001-03-14
  • 打赏
  • 举报
回复

CStatusBar *pStatusBar = (CStatusBar*)AfxGetMainWnd()->GetDescendantWindow(AFX_IDW_STATUS_BAR);

出现的错误有可能和rect有关,因为小李子以前也碰到过这个,可能是func GetItemRect
得到的值有问题,你可以debug一下rect的值。

小李子也是菜鸟一只,大家共同加油吧。。。

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧