用OnDraw()函数问题???(100分)

  • 主题发起人 主题发起人 brain12345
  • 开始时间 开始时间
B

brain12345

Unregistered / Unconfirmed
GUEST, unregistred user!
程序运行后 ,在一个文档中通过敲击键盘向文档中输入字母。输入字母后程序就开不停的刷新。字母输入的越多感觉刷新的越快。这是怎么回事呢。
OnChar()事件中的代码如下
CUserkeyDoc * p =GetDocument();
ASSERT_VALID(p);
p->stringData +=nChar;
我在OnDraw()函数中的代码如下
CUserkeyDoc* p = GetDocument();
Invalidate();
pDC->TextOut(0,0,p->stringData);
 
Invalidate();会触发WM_PAINT消息,会调用OnPaint
OnPaint会调用OnDraw,所以不要在OnDraw中用Invalidate()
 
[blue]写的不错啊..[/blue]
 
你每输入一次,就会调用一个TextOut函数,根据你的程序,是重绘所有的字符,即你所输入的所有字符都是存在stringData中,之后再将字符一起输出,输入的字母越多,需要重绘的字符就越多,你就会感觉刷新越快了。
 
akalun,你说的很对,谢谢你的回答
 
后退
顶部