Ich möchte eine 1x8-Zelle in Ncurses ohne Rahmen machen. Das erste, was ich tat, macht ein FensterMachen Sie eine 1x8-Zelle in Ncurses ohne Rahmen
WINDOW*win = newwin(height, width, 0, 0);
mit der Höhe 24 und Breite 80 Ich möchte einen Spaltenkopf machen und eine Reihe header.In die Spalte I Strings ‚A‘ wollen ‚I‘ und in der Zeilenheader Ich möchte Strings '1' bis '23'. Das bedeutet, dass alle Zellen die Höhe 1 und die Breite 8 haben und sich auf der Position (0,0) eine leere Zelle befindet. Ich möchte jede Zelle in der Kopfzeile mit der Eigenschaft STANDOUT
. Also habe ich eine Funktion DrawCell()
geschrieben. Das ist, was ich versuchte
void DrawCell(int x , int y, const char* ch){
clear();
wattron(win, A_STANDOUT);
mvwprintw(win, x,y,ch);
wrefresh(win);
getchar();
endwin();
}//DrawCell
Das Problem ist, dass diese Funktion nur die Zeichenfolge ‚ch‘ Anzeige in STANDOUT
. Aber ich kann nicht herausfinden, wie diese Zeichenfolge platzieren in einer Zelle mit der Höhe 1 und Breite 8.
Wenn ich Ihren Code ausführen mein ganzes Fenster ist STANDOUT erwarten die erste Hälfte der ersten Zeile im Fenster. Was ich will, ist, dass DrawCell() eine Zelle der Höhe 1 und der Breite 8 macht, wo eine Zeichenfolge platziert werden kann. – Qas
Ich dachte, du wolltest, dass die ganze Zelle hervorstechen würde. Um nur den Text in jeder Zelle hervorzuheben, verschieben Sie den WATTRON-Aufruf nach dem ersten Ausdruck. In jedem Fall sagt die Frage, dass die Zellen keinen Rand haben (was den gesamten Bildschirm mit Text bedeckt). –
Ich möchte die 1x8 Zelle STANDOUT nicht das ganze Fenster außer der Zelle sein. Wenn ich den WATTRON-Aufruf verschiebe, drucke ich nur den Cursor. – Qas