J’essaie d’écrire quelque chose à l’intérieur d’une fenêtre maudite, mais elle semble aussi écrire sur les bordures. Comment puis-je réparer le code ci-dessous?
win_self = newwin(LINES / 2, COLS, 0, 0); box(win_self, 0, 0); wrefresh(win_self); wprintw(win_self, "foobar");
En curses, les bordures générées par box()
sont à l’ intérieur des bordures. Autant que je sache, il n’y a aucun moyen de simplement dire “ne pas écraser ma frontière”.
Néanmoins, il y a trois solutions auxquelles je peux penser maintenant:
move()
) refresh()
l’écran (vous écrasez probablement toujours quelque chose, mais au moins, ce ne sont pas les caractères de bordure) Juste pour que ce soit plus clair: la fonction box()
n’ajoute pas la propriété “cette fenêtre a des bordures visibles”, elle ne fait qu’imprimer des caractères de bordure autour de la fenêtre.
Vous êtes:
Je dirais que le moyen le plus simple est de créer une fenêtre à l’intérieur des bordures de la fenêtre et d’imprimer dans cette fenêtre.
win_self = newwin(LINES / 2, COLS, 0, 0); box(win_self, 0, 0); derwin_self = derwin(win_self, LINES / 2 - 2, COLS - 2, 0, 0); wprintw(derwin_self, "foobar");