初学MFC时,当点击一个Button时,产生图片的移动。但之前的图片还在,这个怎么处理?//OnPaint()
if (IsIconic())
{
//......
}
else
{
pDC->StretchBlt(x,50,rect.right,rect.bottom,&menDC,0,0,recBmp.bmWidth,recBmp.bmHeight,SRCCOPY);
CDialog::OnPaint();
}
//画出一个图形...里面的变量已经定义过了的。
//然后在Button 中的代码如下:
for (int i = 0; i <= 300; i +=10)
{
x = i;
InvalidateRect(NULL, TRUE);
// OnPaint();
}
//InvalidateRect();调用这个就已经调用了OnPaint()函数啊,但为什么还是会那样的?
//另外,调用InvalidateRect()和OnPaint()的结果是不一样的,这个是为什么呢?
两个函数之间有什么区别呢?
有没有人把刷新的详细过程给说下的,如果是两个图片同时移动,相互不影响,又该怎么做呢?请各位大大们解释下咯~~ 谢谢!! Thanks~~~
if (IsIconic())
{
//......
}
else
{
pDC->StretchBlt(x,50,rect.right,rect.bottom,&menDC,0,0,recBmp.bmWidth,recBmp.bmHeight,SRCCOPY);
CDialog::OnPaint();
}
//画出一个图形...里面的变量已经定义过了的。
//然后在Button 中的代码如下:
for (int i = 0; i <= 300; i +=10)
{
x = i;
InvalidateRect(NULL, TRUE);
// OnPaint();
}
//InvalidateRect();调用这个就已经调用了OnPaint()函数啊,但为什么还是会那样的?
//另外,调用InvalidateRect()和OnPaint()的结果是不一样的,这个是为什么呢?
两个函数之间有什么区别呢?
有没有人把刷新的详细过程给说下的,如果是两个图片同时移动,相互不影响,又该怎么做呢?请各位大大们解释下咯~~ 谢谢!! Thanks~~~
解决方案 »
- (急,在线等待)VC 编译调试问题
- SkinMagic文件窗口中遇到滚动条问题
- fatal error C1083: 无法打开包括文件:“iostream.h”: No such file
- 再次请教GDI+渐变填充问题!!
- 添加对话框资源并用classwizard定义与之相应的mydialog后 会弹出
- 一个奇怪的DLL
- 为什么总是出这样的错误!!!!!!!!!!!!!!!帮帮我!!!!
- 视图的重绘
- 请问我该如何返回一个 CString 数组呢?
- 我想做一个后台程序,不要任何窗口,只是在结束时要出现一个窗口,如何设计,当然我可以把主窗口隐藏,但这不是好的方案吧
- 求助 MINIFILTER内核实现指定文件保护
- CFile.Write如何写入float数据(其他非字符型数据)??
附加参数为无效区域
OnPaint
如果没有Wm_Paint消息在队列里,就是没有无效区域的话是不会重绘的InvalidateRect(NULL, TRUE);
UpdateWindow(TRUE);
但是为什么我调用了InvalidateRect()后没有效果呢?窗口还是没有刷新~~ 难道是原来的代码上就有问题?谢谢~~~