我有一個大量的函數(1500行代碼),我需要調試。我會嘗試並最終將其分解,但可用的工具不能完成任務。在MFC中調試繪圖函數的最簡單方法是什麼?
因此,我需要的是在此期間能夠禁用DC寫入顯示器的緩存以便能夠快速調試。有沒有可以設定的標誌來實現這一點?
我有一個大量的函數(1500行代碼),我需要調試。我會嘗試並最終將其分解,但可用的工具不能完成任務。在MFC中調試繪圖函數的最簡單方法是什麼?
因此,我需要的是在此期間能夠禁用DC寫入顯示器的緩存以便能夠快速調試。有沒有可以設定的標誌來實現這一點?
作爲性能優化,GDI執行批處理。當您要求GDI執行操作時,它並不總是立即執行。相反,它將其存儲在一個緩衝區中,一旦該緩衝區滿了,批處理就會被刷新,操作將被髮送到內核模式以供執行。這是GDI默認做的,通常沒有理由改變這種操作模式。
有時您需要控制GDI執行多少批處理或發生刷新時,要麼是因爲要渲染到屏幕外DC並需要從內存中讀取該信息或出於調試目的。
您可以使用2個API調用來控制批處理。要啓動批量操作的刷新,您可以撥打GdiFlush
。一旦這個API返回,你保證所有的GDI操作都已經完成。如果您想控制執行批量的數量,您可以使用GdiSetBatchLimit
。要完全禁用配料,只需撥打GdiSetBatchLimit(1)
即可。
我做的方式:
您必須禁用雙緩衝(使用CMemDC)。
作爲性能優化GDI批處理渲染操作。要禁用線程的批處理,您可以調用['GdiSetBatchLimit(1)'](http://msdn.microsoft.com/en-us/library/windows/desktop/dd144846.aspx)。作爲替代方法,您可以通過調用['GdiFlush()'](http://msdn.microsoft.com/zh-cn/library/windows/desktop/dd144844.aspx)來顯式刷新呈現操作。 – IInspectable
@IInspectable這似乎是正確的答案。發佈它,我會給你信譽。 – Adrian