2010-01-31 60 views
2

在与写入显示:如何在每次调用后查看TextOutW(...)的输出?

::TextOutW(pDC->m_hDC, x, y, &Out, 1); 

只显示每15个电话(15个字符)后,在屏幕上。 仅出于调试目的,我希望在每次调用后在显示屏上看到新字符。我已经尝试:: flushall()和其他一些东西,但没有改变。 TIA

回答

1

由于性能原因,GDI函数调用会被累计并批量调用。 您可以在TextOut调用之后立即调用GdiFlush来立即执行绘图。或者,请在输出文本之前拨打GdiSetBatchLimit(1)以完全禁用批处理。

+0

不错的答案。击败我45秒...... :-) – 2010-01-31 21:47:05

+0

非常感谢! 他们都做我想做的。顺便说一句,我试着在GdiSetBatchLimit()中设置其他值。并发现15似乎是最大的。较高的值批次只有15和更低的值按预期行事。该文档说,值为0设置默认值。 – Harvey 2010-02-01 01:48:31

1

::flushall()用于iostreams,所以根本不会影响Windows屏幕输出。我从来没有尝试过,但基于文档,我相信GDIFlush()可能是你想要的。您应该也可以使用GDISetBatchLimit(1);强制每个呼叫在被呼叫时立即运行。

+0

非常感谢!他们都做我想做的事。那应该是: GdiSetBatchLimit(1);和GdiFlush(); – Harvey 2010-02-01 01:48:55

相关问题