控制台介面控制(六) 邊框

2021-07-09 08:32:51 字數 2332 閱讀 4461

效果[cpp]view plain

相關資訊

邊框並不是用線條畫出來的,實際上控制台好像還不能畫線條。邊框的製作是用字元堆集起來的,有的字元是一條橫線,有的是一條折線。把它們按照矩形的順序擺放,就畫出框了。原理有點像下面一幅圖(草泥馬の鄙視):

┏┛┻━━━━┛┻┓

┃       ┃

┃    ━   ┃

┃ ┳┛  ┗┳   ┃

┃       ┃

┃    ┻      ┃

┃       ┃

┗━┓   ┏━┛

┃   ┃

┃   ┃

┃   ┗━━━━┓

┃          ┣┓

┃             ┏┛

┗━┓┓┏━━┳┓┏━┛

┃┫┫     ┃┫┫

┗┻┛     ┗┻┛

千里馬常有,而伯樂不常有,因而伯樂相比千里馬更為珍貴(扯遠了orz)。線條狀的字元不是都可以找得到,用得出來。在unicode編碼下,我就不知道哪個字元編碼代表線條,就算是使用ascii有時候也無法正常顯示。其原因在於,為了擴充套件原本短小精悍的字符集,微軟使用了**頁。不同**頁可以顯示各種字元(同時也意味著不能顯示各種字元),比如使用437 dos不能顯示中文;而使用936簡體中文則無法畫出邊框。控制台設定**頁的函式是:setconsoleoutputcp。

**頁(code page)說明

1258越南文

1257波羅的海文

1256阿拉伯文

1255希伯來文

1254土耳其語

1253希臘文

1252拉丁文(ansi)

1251斯拉夫文

1250中歐文

950正體中文

949韓文

936簡體中文

932日文

874泰文

850使用多種語言(ms-dos拉丁文)

437ms-dos美語/英語

畫邊框函式

[cpp]view plain

copy

// ---- 畫邊框 ---- 第二個引數為true,則畫雙線邊框

voidcmyconsole::drawbox(small_rect rc,boolbdouble)  

else

// -- 畫上下邊界

for(pos.x = rc.left; pos.x <= rc.right; ++pos.x)  

elseif(pos.x == rc.right)  

else

}  // -- 畫左右邊界

for(pos.y = rc.top+1; pos.y 

}  

控制台介面控制(一)

總述 前言 這裡所說的控制台指的是console程式設計。顯示的介面類似dos,某種程式上也很像tc裡的執行結果。是一種vc上的簡易視窗程式設計。vc 有提供window視窗程式設計,可以寫出很好看的視窗介面,可是涉及的知識點較多。如果有時候只是想測試一下某個用法,或者寫的某個函式,就很沒效率。控制...

認識控制台 控制台控制代碼 附著到控制台 關閉控制台

1.附著到乙個控制台 乙個程序可以使用 attachconsole 函式來附著到乙個控制台上,乙個程序只能附著乙個控制台。乙個控制台可以有許多程序附著到它上面,呼叫 getconsoleprocesslist 函式可以得到附著到乙個控制台的列表。2.關閉乙個控制台 程序可以使用 freeconsol...

認識控制台 控制台控制代碼 附著到控制台 關閉控制台

附著到乙個控制台 乙個程序可以使用 attachconsole 函式來附著到乙個控制台上,乙個程序只能附著乙個控制台。乙個控制台可以有許多程序附著到它上面,呼叫 getconsoleprocesslist 函式可以得到附著到乙個控制台的列表。關閉乙個控制台 程序可以使用 freeconsole 函式...