雙緩沖技術主要使用在繪圖方面,不過,借鑒雙緩沖技術的原理,可以讓你的控制台程序優勢更加優秀的體驗,例如你編寫的控制台游戲,往往需要不停地刷新屏幕,這時候會造成非常嚴重的問題-----屏幕閃爍!這極大的降低了用戶體驗(雖然說沒什麼用戶吧,但這並不妨礙我們追求完美嘛~),雙緩沖就可以消除這種閃爍
控制台雙緩沖技術原理:
背景知識:你所看到的黑色界面所顯示的東西 都是在"屏幕緩沖區"中顯示的,我們能看的這個緩沖區,叫做"當前(激活的)屏幕緩沖區",我們可以創建其他緩沖區,也可以對其進行操作,但是是不可見的.
原理介紹:
新建一個屏幕緩沖區(此時不可見)
在新建的屏幕緩沖區中寫入想要一次顯示的內容
把該緩沖區設置為當前緩沖區(可見)
---->為什麼能解決閃屏問題?
解釋:假設你在屏幕上打印一系列11111111111111111111111111111111111111111111111111111,如果你是采用循環printf("1")來實現的,那麼實際情況是屏幕上先輸出1然後11接著111,,以此類推,我們看到了寫的過程,再這樣的過程中我們就會感到閃爍了,如果這麼多1是一下子顯示出來的,就不會有閃爍,雙緩沖吧寫的過程放在不可見的屏幕緩沖區中,一次性展示出來,就解決了閃爍問題.
具體實現:
---------------------------------創建屏幕緩沖區--------------------------------------
------------------------------------可選項:隱藏光標---------------------------------------
---------------------------------寫入你想要顯示的東西---------------------------------------
WriteConsole(hNewConsole, "這裡是字符串", strlen(p), NULL, NULL);
------------------------------------------激活--------------------------------------------------