2010-01-31 16 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

相關問題