在响应函数里加入如下代码//画圆
Invalidate(TRUE);
CPaintDC dc(this);
dc.Ellipse(100,100,200,200);可以画出圆来,但把改为://画圆
CPaintDC dc(this);
dc.Ellipse(100,100,200,200);
Invalidate(TRUE);
则画不出圆来。好奇怪,请说说错在哪里?
Invalidate(TRUE);
CPaintDC dc(this);
dc.Ellipse(100,100,200,200);可以画出圆来,但把改为://画圆
CPaintDC dc(this);
dc.Ellipse(100,100,200,200);
Invalidate(TRUE);
则画不出圆来。好奇怪,请说说错在哪里?
解决方案 »
- 弱弱的提一个CObList::GetNext的问题
- 求教一个关于注释的问题 急!!
- vc2008使用问题!!!!
- 小声问一下,能不能帮我看看这个问题.
- 修改系统connect超时时间
- 关于toolbar的停靠
- 我的工具栏,怎么没有了? 在线等待。 急急急急急急急急急急
- 我用fopen()和CreateFile()得到,FILE和HANDLE宏有什么区别,怎么转换?谢谢:)
- 难道WinXP上就运行不了VC++6.0吗,请高手指教
- CToolBar类的LoadBitmap和SetBitmap如何使用?(手头没有MSDN)
- 关于右键事件的问题!
- vc编写dll,在vb中调用,报错bad dll calling convert
是刷新屏幕,就又给擦了。如果你那些代码放在OnDraw,或者OnPaint就没事
Invalidate(TRUE);就是更新你的视图,更新后如果没有重新调用你的代码也就不会画圆了。
调用Invalidate();只是刷新已有东西啊。
void Invalidate( BOOL bErase = TRUE );Parameters
指定是否要擦除更新区域内的背景。 Res使CWnd的整个客户区无效。当产生下一个WM_PAINT消息时,客户区被标记为需要重画。也可以在产生WM_PAINT消息之前用ValidateRect或ValidateRgn成员函数使区域有效。 bErase参数指定了在处理更新区域的时候是否要擦除更新区域内的背景。如果bErase为TRUE,则当调用BeginPaint的时候,将擦除背景。如果bErase为FALSE,则背景保持不变。如果对于更新区域的任何部分bErase为TRUE,则整个区域的背景都会被擦除,而不仅是给定的部分。 每当CWnd的更新区域不为空,并且在应用程序的窗口消息队列中没有其它消息时,Windows就发送一条WM_PAINT消息。