程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 控制台雙緩沖技術,控制台緩沖

控制台雙緩沖技術,控制台緩沖

編輯:關於C語言

控制台雙緩沖技術,控制台緩沖


簡介

雙緩沖技術主要使用在繪圖方面,不過,借鑒雙緩沖技術的原理,可以讓你的控制台程序優勢更加優秀的體驗,例如你編寫的控制台游戲,往往需要不停地刷新屏幕,這時候會造成非常嚴重的問題-----屏幕閃爍!這極大的降低了用戶體驗(雖然說沒什麼用戶吧,但這並不妨礙我們追求完美嘛~),雙緩沖就可以消除這種閃爍

 

控制台雙緩沖技術原理:

背景知識:你所看到的黑色界面所顯示的東西 都是在"屏幕緩沖區"中顯示的,我們能看的這個緩沖區,叫做"當前(激活的)屏幕緩沖區",我們可以創建其他緩沖區,也可以對其進行操作,但是是不可見的.

原理介紹:

新建一個屏幕緩沖區(此時不可見)

在新建的屏幕緩沖區中寫入想要一次顯示的內容

把該緩沖區設置為當前緩沖區(可見)

---->為什麼能解決閃屏問題?

       解釋:假設你在屏幕上打印一系列11111111111111111111111111111111111111111111111111111,如果你是采用循環printf("1")來實現的,那麼實際情況是屏幕上先輸出1然後11接著111,,以此類推,我們看到了寫的過程,再這樣的過程中我們就會感到閃爍了,如果這麼多1是一下子顯示出來的,就不會有閃爍,雙緩沖吧寫的過程放在不可見的屏幕緩沖區中,一次性展示出來,就解決了閃爍問題.

具體實現:

---------------------------------創建屏幕緩沖區--------------------------------------

 

------------------------------------可選項:隱藏光標---------------------------------------

 

---------------------------------寫入你想要顯示的東西---------------------------------------

 WriteConsole(hNewConsole, "這裡是字符串", strlen(p), NULL, NULL);

------------------------------------------激活--------------------------------------------------

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved