MFC问题:进度条和滑块同时使用,滑块用来改变背景色。使用UpdateData改变进度条上的静态控件时报错。

给一个单文档程序添加一个对话框资源。对话框中包含一个进度条,表示进度的静态控件,控制进度条增加的按钮以及一个用来改变背景色的滑动条。编译通过。运行时,点击前进按钮,程序会... 给一个单文档程序添加一个对话框资源。对话框中包含一个进度条,表示进度的静态控件,控制进度条增加的按钮以及一个用来改变背景色的滑动条。编译通过。运行时,点击前进按钮,程序会跳出如下图所示的错误警告。将代码换成SetDlgItemText()就不会跳出错误。我想知道这是为什么。
以下放部分修改过的代码。
BOOL MyDlg::OnInitDialog()
{
CDialog::OnInitDialog();

// TODO: Add extra initialization here
m_ProgressCtrl.SetRange(0,100);
m_ProgressCtrl.SetPos(0);
m_ProgressCtrl.SetStep(5);
m_SliderCtrl.SetRange(0,255);
m_strSlider=192;
UpdateData(false);
return TRUE;
}
void MyDlg::OnButton1()
{
// TODO: Add your control notification handler code here
m_ProgressCtrl.StepIt();
UpdateProgressText();
}
void MyDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: Add your message handler code here and/or call default
Invalidate();
CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
}
void MyDlg::UpdateProgressText()
{
int nPos=m_ProgressCtrl.GetPos();
int nUp,nLow;
m_ProgressCtrl.GetRange(nLow,nUp);
m_strSTATIC1.Format("%4.0f%%",(float)nPos/(nUp-nLow)*100);
UpdateData(0);//就是执行到这一步报错。
}
HBRUSH MyDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{

// TODO: Change any attributes of the DC here
UpdateData(true);
COLORREF color=RGB(255,m_strSlider,255);
m_Brush.Detach();
m_Brush.CreateSolidBrush(color);
pDC->SetBkColor(color);
return (HBRUSH)m_Brush;
}
如需要源代码请留下邮箱。这个程序比较简单,相信看看也知道在干什么。苦于目前为止老师和一些群内人士无法解答,渴求各路高手。
展开
 我来答
手机用户90748
2011-10-16 · 超过18用户采纳过TA的回答
知道答主
回答量:123
采纳率:0%
帮助的人:52.3万
展开全部
刚看了,就是SetPor(int pos);该函数可以定位Slider的任意位置。首先要用SetRange()实现Slider的最大值与最小值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
手机用户22216
2011-10-19 · 超过17用户采纳过TA的回答
知道答主
回答量:274
采纳率:0%
帮助的人:115万
展开全部
刚看了,就是SetPor(int pos);该函数可以定位Slider的任意位置。首先要用SetRange()实现Slider的最大值与最小值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zwb32167
2011-10-11 · TA获得超过328个赞
知道答主
回答量:136
采纳率:0%
帮助的人:162万
展开全部
zhou.gaby@gmail.com尽快发吧,我帮你查这个问题
更多追问追答
追问
已发。
追答
问题给你查到了,见邮件里
另外,多给我加点分哦~~~
对了,忘了说。你们老师比较菜。。。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式