永发信息网

MFC中进度条怎么实现

答案:2  悬赏:60  手机版
解决时间 2021-03-12 06:31
MFC中进度条怎么实现
最佳答案
以Dialog为例简单说明一下:
  • 在Dialog上添加Progress Control控件, 关联控件变量为m_progress_demo;
  • 在Dialog所属的类的OnInitDialog()函数里面(新类的话需要手工添加OnInitDialog()函数), 增加初始化处理: m_progress_demo.SetRange(0, 100);m_progress_demo.SetPos(0); 表示显示的进度为0~100之间,而且进度从0开始。
  • 在需要进度条更新的场合下,比如进度20,增加:m_progress_demo.SetPos(20);
  • 全部回答
    你进度条具体的建立过程不知道有没有遗漏的? 将 progress控件拖放到dlg上,然后用mfc向导为他建立一个变量,m_pro,为dlg类的成员变量。(这时vc会自动帮你把变量与控件建立好联系) 还有就是,进度条的进度显示你最好单弄一个线程,不要影响dlg的本身操作。 -------------------- 线程问题不是你这问题的重点,具体要看你的工程需求,我看到你这里用了for循环,如果一直在循环里,可能在短时间内造成你的dlg假死现象。把进度显示和里面的操作放到一个循环中时,最好是在线程里。这里只是优化而已,线程的创建使用可以单查下教程了。 你的问题重点是那个无效句柄 你的无效句柄问题设个断点具体调试看看吧。我只能向你猜测几种可能。 也许你的工程是个文档工程,然后临时创建了一个包含进度条对话框。如果是这种情况,大概就是你的对话框对象提前析构导致的。你可以把声明dlg对象的代码 改成 new一个dlg指针 来替代(记得在dlg析构里delete this) 也许你是用domodle方法调用的dlg,当idok后调用一些列函数,包括step() 这种情况类似上面,idok后dlg析构了,再调用dlg对象可能会产生一些错误。可以改用非模态方法创建。
    我要举报
    如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
    大家都在看
    在“我们永远热爱自己的祖国”,韵母是后鼻音
    太阳鸟网吧地址在哪,我要去那里办事
    2017年辽宁考生600分能考上哈工大威海分校吗
    富士康培训班班长辞职报告怎么写 因为
    音响太小声
    佳宁娜食品厂在哪里啊,我有事要去这个地方
    为什么车载吸盘放上手机之后就黑屏,
    骑马与砍杀16世纪是放入战团1.153吗
    小说女主叫妖月
    星光大道KTV怎么去啊,有知道地址的么
    湖南有一条路叫潇湘南路的,请问是在长沙市吗
    海藻细胞从海水中吸收K+的方式是A. 自由扩散B
    每天跳绳6000下一个月可以减多少斤
    达县宏川医药连锁有限责任公司大竹青春连锁店
    天津市河西的米悦心理咨询咋样啊,有去过的人
    推荐资讯
    清和园停车场这个地址在什么地方,我要处理点
    六枝特区和兴农资有限公司地址有知道的么?有
    女人为什么会喜欢比自己大几岁的男人
    路由器改了wifi密码以后消息摄像机就一直连接
    新买了一个电水壶,回来用红醋清洗,加了半壶水
    iOS11广告屏蔽功能怎么用
    迪奥雪晶灵焕白亮采保湿乳液怎么样?
    精通音乐是什么意思
    已经申请过了支付宝 卡可以不要 重新申请么
    北京二锅头招商门槛高吗?代理北京二锅头需要
    焦桥交通运输所我想知道这个在什么地方
    戴尔笔记本fn+F3和Fn+F2是什么意思?
    正方形一边上任一点到这个正方形两条对角线的
    阴历怎么看 ?