/**function: 將字元輸出到緩衝區
@param
ch: 要輸入的字元
posline : 字元所在行的位置
poscolumn: 字元所在列的位置
charinfoaarray:緩衝區陣列的內容
**/void writechartobuffer(char_info ch, int posline, int poscolumn, char_info * charinfoaarray)
/***
function:將緩衝區的字元輸出到控制台
@param
startposrow:顯示區域起始點的行號
startposcolumn:顯示區域起始點的列號
height:顯示區域高
width:顯示區域寬
charinfoaarray:緩衝區陣列的內容
***/
void outputtoconsole(int startposrow, int startposcolumn, int height, int width, char_info * charinfoaarray)
;//固定值(控制台視窗固定的屬性值)
coord dwbuffercoord = ;//緩衝區左上角的起始位置
small_rect rect = ;//顯示多大的緩衝區:
writeconsoleoutput(hconsoleoutput, charinfoaarray, dwbuffersize, dwbuffercoord, &rect);
}/**
function :在控制台輸出文字
@param
text:要輸出的文字
row:輸出文字的行數
column:輸出文字的列數
startposrow: 第乙個字元所在行數
startposcolumn: 第乙個字元所在列數
bgcolor: 背景色
fgcolor;前景色
**/void drawtext(string text, int row, int column, int startposrow, int startposcolumn, int bgcolor, int fgcolor)
outputtoconsole(startposrow, startposcolumn, row, column, charinfoarray);
}/**
function 畫矩形
@param
height:矩形的高
width:矩形的寬
startposrow:矩形左上角縱座標的位置
startposcolumn:矩形左上角橫座標的位置
bgcolor:背景色
fgcolor:前景色
**/void drawrect(int height, int width, int leftposy, int leftposx, int bgcolor, int fgcolor)
}outputtoconsole(leftposy, leftposx, height, width, charinfoaarray);
}/**
隱藏游標
**/void hidecursor()
/**顯示游標
**/void showcursor()
void main()
;//游標所在的位置
int key = 0;//接收鍵盤輸入
int i = 0;
myinput inputusername;
myinput inputpassword;
mybutton btnlogin;
drawtext(strusername, 1, 8, 9, 25, foreground_red, background_black);//在指定位置輸入username字串
drawtext(strpassword, 1, 8, 11,25, foreground_red, background_black);//在指定位置輸入password字串
inputusername.height = 1;
inputusername.width = 20;
inputusername.bgcolor = background_white;
inputusername.fgcolor = foreground_red;
inputusername.startposx = 35;
inputusername.startposy = 9;
drawrect(inputusername.height, inputusername.width, inputusername.startposy, inputusername.startposx ,inputusername.bgcolor, inputusername.fgcolor);
inputpassword.height = 1;
inputpassword.width = 20;
inputpassword.bgcolor = background_white;
inputpassword.fgcolor = foreground_red;
inputpassword.startposx = 35;
inputpassword.startposy = 11;
drawrect(inputpassword.height, inputpassword.width, inputpassword.startposy, inputpassword.startposx, inputpassword.bgcolor, inputpassword.fgcolor);
btnlogin.str = "login";
btnlogin.bgcolor = background_green;
btnlogin.fgcolor = foreground_red;
btnlogin.height =3;
btnlogin.width = 10;
btnlogin.startposx = 35;
btnlogin.startposy = 14;
drawrect(btnlogin.height, btnlogin.width, btnlogin.startposy, btnlogin.startposx, btnlogin.bgcolor, btnlogin.fgcolor);
drawtext(btnlogin.str, btnlogin.height / 2, btnlogin.str.length(), btnlogin.startposy + (btnlogin.height / 2), btnlogin.startposx + (btnlogin.width - btnlogin.str.length())/2, btnlogin.bgcolor, btnlogin.fgcolor);//在指定位置輸入login字串
cursorpos = ;
setconsolecursorposition(getstdhandle(std_output_handle), cursorpos);
i = i + 1;
while (1)
;setconsolecursorposition(getstdhandle(std_output_handle), cursorpos);
i = i + 1;
}else if (i == 1)
;setconsolecursorposition(getstdhandle(std_output_handle), cursorpos);
i = i + 1;
}else if (i == 2)
;setconsolecursorposition(getstdhandle(std_output_handle), cursorpos);
i = 0;
hidecursor();
//繪製button按鈕,改變顏色
btnlogin.bgcolor = background_blue;
drawrect(btnlogin.height, btnlogin.width, btnlogin.startposy, btnlogin.startposx, btnlogin.bgcolor, btnlogin.fgcolor);
drawtext(btnlogin.str, btnlogin.height / 2, btnlogin.str.length(), btnlogin.startposy + (btnlogin.height / 2), btnlogin.startposx + (btnlogin.width - btnlogin.str.length()) / 2, btnlogin.bgcolor, btnlogin.fgcolor);//在指定位置輸入login字串
}break;
default:
break;}}
getchar();
}
控制台繪製登陸框(三) TAB切換的改進
效果圖同上篇 控制台繪製登陸框 二 一致。include include include include define key tab 9 define background black 0 define background white 255 using namespace std typede...
kvm 控制台登陸配置
vm虛擬機器能否像xen虛擬機器一樣通過virsh console 一樣採用字元介面進行linux虛擬機器控制台呢,答案是肯定的,預設情況下該命令是不起作用的,需要修改相關檔案才能實現。1 新增ttys0的許可,允許root登入 vm虛擬機器能否像xen虛擬機器一樣通過virsh console 一...
控制台繪製正弦 余弦曲線
當然了,這裡我們不用陣列 否則就沒技術含量了。正弦曲線的特點是左右對稱,且左邊部分的縱座標是從1一直降到 1的,相應的右邊的縱座標是從 1一直遞增到1。難點在於顯示器只能按行輸出,也就是說輸出了一行後不能再掉頭輸出上一行的資訊。我們自定義乙個縮放係數a為10,用acos 1 10可以算得等於31,因...