进度条不能正常显示

dream_ice 2009-02-04 09:41:36

CStatusBar status;
CProgressCtrl *progress = new CProgressCtrl;
status.Create(this); //创建状态栏
RECT m_rect;
status.GetItemRect(2,&m_rect); //获取第二个区域
progress->Create(WS_CHILD | WS_VISIBLE,m_rect,&m_StatusBar,0); //创建进度条,父窗口为状态栏
progress->ShowWindow(SW_SHOW); //显示进度条控件
progress->SetRange(0,100); //设置范围
progress->SetPos(50); //设置位置

却发现第二个区域里没显示进度条,请各位帮忙看看啊
...全文
200 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dream_ice 2009-02-04
  • 打赏
  • 举报
回复
白忙活了半天
RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);
这句代码被不小心给注释了,郁闷
dream_ice 2009-02-04
  • 打赏
  • 举报
回复
我有的啊
dream_ice 2009-02-04
  • 打赏
  • 举报
回复
楼上的,我调试的也是得到的负值,可郁闷的是昨天也是这样的,可以显示,今天却不行了
没真正创建,可是返回值全是创建成功的,请各位帮忙解决这问题啊
北京的雾霾天 2009-02-04
  • 打赏
  • 举报
回复
最后的位置放到如下的代码试试看:

RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);

叶落寒山 2009-02-04
  • 打赏
  • 举报
回复
status.GetItemRect(2,&m_rect); //获取第二个区域

返回的m_rect 矩形大小为(2,0,-18,-18).原因是在OnCreate函数中,窗台和状态栏并没有真正创建,
所以GetItemRect函数无法获取status栏位的CRect值。



CStatusBar status;
CProgressCtrl *progress = new CProgressCtrl;
status.Create(this); //创建状态栏
RECT m_rect;
status.GetItemRect(2,&m_rect); //获取第二个区域

m_rect.bottom = m_rect.top +10; // 权宜之计,可以显示出来了。说明问题出在GetItemRect.
m_rect.left = 20;
m_rect.right = m_rect.left+20;

progress->Create(WS_CHILD | WS_VISIBLE,m_rect,&m_StatusBar,0); //创建进度条,父窗口为状态栏
progress->ShowWindow(SW_SHOW); //显示进度条控件
progress->SetRange(0,100); //设置范围
progress->SetPos(50); //设置位置





dream_ice 2009-02-04
  • 打赏
  • 举报
回复
m_StatusBar 与 status 是什么关系?父窗口指定错误了

写错了,就是status。


你的状态条是局部变量,所以函数结束就销毁了,当然它的子窗口也就没了

是全局的,这代码是遇到问题临时写的。状态栏和进度条的声明全在类的头文件里的
Conry 2009-02-04
  • 打赏
  • 举报
回复
你的状态条是局部变量,所以函数结束就销毁了,当然它的子窗口也就没了
vcPlayer 2009-02-04
  • 打赏
  • 举报
回复
m_StatusBarstatus 是什么关系?父窗口指定错误了。

16,467

社区成员

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

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

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