我不明白當用戶按下Ctrl-L或Ctrl-R時用於重新繪製屏幕的功能。使用clearok()
,redrawwin()
或wrefresh()
與curscr
作爲參數有什麼區別?從OpenBSD的手冊頁:正確的重繪整個屏幕的方法?
如果clearok被調用,TRUE作爲參數,下次調用這個窗口wrefresh將徹底清除屏幕,並從頭開始重新繪製整個屏幕。當屏幕的內容不確定時,或者在某些情況下會出現更令人滿意的視覺效果時,此功能非常有用。如果clearok的win參數是全局變量curscr,那麼使用任何窗口下一次調用wrefresh會導致屏幕被清除並從頭開始重新繪製。
...
若獲勝參數wrefresh是全局變量curscr,屏幕立刻清零,從頭粉刷一新。
...
的wredrawln例行指示詛咒,有些網線已損壞,任何事情寫在他們之前,必須扔掉。它觸及指示的線條(標記它們已更改)。例程redrawwin()觸及整個窗口。
我不明白。 Ctrl + L和Ctrl + R?你從哪裏得到這些關鍵組合?你想做什麼? –
這些技術之間的區別在引號中描述。你的問題很不清楚。 –
@LightnessRacesinOrbit Ctrl-L是一個非常常見的「重畫屏幕」命令,可以通過「more」,「less」,「vi」,「dialog」,「screen」等基於curses的程序識別(使用Ctrl-A前綴) ,'lynx','info' ......幾乎所有與用戶使用整個屏幕交互的東西。 Ctrl-R可能不太常見的替代品。在新程序中想要將Ctrl-L和/或Ctrl-R與此函數關聯的原因並不清楚,只是爲了與用戶從所有其他程序中學到的內容保持一致。 –