2015-11-11 63 views
0

傳遞null到CreateCompatibleDC()時,當你調用CreateCompatibleDC(NULL),你得到一個處理應用程序的當前畫面,在MSDN上解釋什麼是返回:在WINAPI

如果該句柄爲NULL,則函數創建與應用程序的當前屏幕兼容的內存DC

我想弄清楚「應用程序的當前屏幕」是什麼意思?

我看到它的方式,它可以是當前活動屏幕的句柄,也可以是包含應用程序所有可見部分的句柄。

說我有一個窗口和一個模態子窗口(彈出窗口),我會得到一個DC只有模態子或全部可見區域?

+4

CCDC創建*內存*上下文。與「當前活動屏幕」或「所有可見部分」無關。它的像素格式與當前屏幕兼容,在所有現代機器上均爲32bpp,因此,無論您如何處理它,都會盡快使屏幕閃爍。 –

+2

http://www.winprog.org/tutorial/bitmaps.html – xxbbcc

+0

如果您需要特定窗口的設備上下文,請使用'GetDC'。 – xxbbcc

回答

4

簡短的回答是:一個內存DC的句柄。

更具體地說:CreateCompatibleDC(NULL)返回存儲設備上下文的句柄,其格式與GetDC(NULL)將返回的設備上下文相同。但情況並非如此。繪製它實際上並沒有在屏幕上顯示任何內容。

內存DC通常用於在內存中創建位圖等內容。