控制台繪製登陸框 二 TAB切換

2021-07-25 19:31:04 字數 4790 閱讀 2231

/**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,因...