if(j%2==0)
dc.FillRect(&CRect(0,0,100100);
else
dc.FillRect(&CRect(0,0,100100);
Sleep(100);
}
9 个解决方案
#1
代码有点错
反正就这个意思
反正就这个意思
#2
for(j=0;j<10;j++){
if(j%2==0)
dc.FillSolidRect(&CRect(0,0,100100),RGB(0,0,0));
else
dc.FillSolidRect(&CRect(0,0,100100),RGB(255,255,255));
Sleep(100);
}
if(j%2==0)
dc.FillSolidRect(&CRect(0,0,100100),RGB(0,0,0));
else
dc.FillSolidRect(&CRect(0,0,100100),RGB(255,255,255));
Sleep(100);
}
#3
楼主什么意思?
用fillrect函数的时候,dc中必须要有位图被selectobject/
用fillrect函数的时候,dc中必须要有位图被selectobject/
#4
fillrect是用画刷画矩形,rectangle是画矩形框然后用刷子填充,效率低一点。
#5
闪烁效果
用Rectangle代替FillRect,然后选进不同的刷子就可以
如上用FillRect却不行,但是在Sleep(100)前加MessageBox("")又会看到颜色交替,不知道为什么,FillRect什么时候刷屏啊
用Rectangle代替FillRect,然后选进不同的刷子就可以
如上用FillRect却不行,但是在Sleep(100)前加MessageBox("")又会看到颜色交替,不知道为什么,FillRect什么时候刷屏啊
#6
CRect rect;
rect.left = 0;
rect.top = 0;
rect.bottom = 100;
rect.right = 100;
CBrush br;
for(int i = 0;i<10; ++i)
{
br.CreateSolidBrush(RGB(i*20,i*20,i*20));
pDC->FillRect(&rect,&br);
Sleep(1000);
// AfxMessageBox("aa");
br.DeleteObject();
}
怎么不能呢??
用Sleep和AfxMessageBox都可以。
这段代码在ondraw中。
rect.left = 0;
rect.top = 0;
rect.bottom = 100;
rect.right = 100;
CBrush br;
for(int i = 0;i<10; ++i)
{
br.CreateSolidBrush(RGB(i*20,i*20,i*20));
pDC->FillRect(&rect,&br);
Sleep(1000);
// AfxMessageBox("aa");
br.DeleteObject();
}
怎么不能呢??
用Sleep和AfxMessageBox都可以。
这段代码在ondraw中。
#7
可能是你的sleep时间太短了。
#8
我已经糊涂了
换成你的代码后结果很奇怪
第一次运行到时效果很好,看样子颜色有10层
从第二次开始,明显只有2层了,我把Sleep时间改到10,也是这样,估计不是时间太短的问题
怎么也说不通啊
换成你的代码后结果很奇怪
第一次运行到时效果很好,看样子颜色有10层
从第二次开始,明显只有2层了,我把Sleep时间改到10,也是这样,估计不是时间太短的问题
怎么也说不通啊
#9
把MessageBox加上又可以,唉
#1
代码有点错
反正就这个意思
反正就这个意思
#2
for(j=0;j<10;j++){
if(j%2==0)
dc.FillSolidRect(&CRect(0,0,100100),RGB(0,0,0));
else
dc.FillSolidRect(&CRect(0,0,100100),RGB(255,255,255));
Sleep(100);
}
if(j%2==0)
dc.FillSolidRect(&CRect(0,0,100100),RGB(0,0,0));
else
dc.FillSolidRect(&CRect(0,0,100100),RGB(255,255,255));
Sleep(100);
}
#3
楼主什么意思?
用fillrect函数的时候,dc中必须要有位图被selectobject/
用fillrect函数的时候,dc中必须要有位图被selectobject/
#4
fillrect是用画刷画矩形,rectangle是画矩形框然后用刷子填充,效率低一点。
#5
闪烁效果
用Rectangle代替FillRect,然后选进不同的刷子就可以
如上用FillRect却不行,但是在Sleep(100)前加MessageBox("")又会看到颜色交替,不知道为什么,FillRect什么时候刷屏啊
用Rectangle代替FillRect,然后选进不同的刷子就可以
如上用FillRect却不行,但是在Sleep(100)前加MessageBox("")又会看到颜色交替,不知道为什么,FillRect什么时候刷屏啊
#6
CRect rect;
rect.left = 0;
rect.top = 0;
rect.bottom = 100;
rect.right = 100;
CBrush br;
for(int i = 0;i<10; ++i)
{
br.CreateSolidBrush(RGB(i*20,i*20,i*20));
pDC->FillRect(&rect,&br);
Sleep(1000);
// AfxMessageBox("aa");
br.DeleteObject();
}
怎么不能呢??
用Sleep和AfxMessageBox都可以。
这段代码在ondraw中。
rect.left = 0;
rect.top = 0;
rect.bottom = 100;
rect.right = 100;
CBrush br;
for(int i = 0;i<10; ++i)
{
br.CreateSolidBrush(RGB(i*20,i*20,i*20));
pDC->FillRect(&rect,&br);
Sleep(1000);
// AfxMessageBox("aa");
br.DeleteObject();
}
怎么不能呢??
用Sleep和AfxMessageBox都可以。
这段代码在ondraw中。
#7
可能是你的sleep时间太短了。
#8
我已经糊涂了
换成你的代码后结果很奇怪
第一次运行到时效果很好,看样子颜色有10层
从第二次开始,明显只有2层了,我把Sleep时间改到10,也是这样,估计不是时间太短的问题
怎么也说不通啊
换成你的代码后结果很奇怪
第一次运行到时效果很好,看样子颜色有10层
从第二次开始,明显只有2层了,我把Sleep时间改到10,也是这样,估计不是时间太短的问题
怎么也说不通啊
#9
把MessageBox加上又可以,唉