Printing inside window, not on borders

后端 未结 2 1483
深忆病人
深忆病人 2021-02-19 20:52

I\'m trying to write something inside a curses window, but it seems to write on borders too. How can I fix the code below?

win_self = newwin(LINES / 2, COLS, 0,          


        
2条回答
  •  情歌与酒
    2021-02-19 21:20

    In curses, the borders generated by box() are inside borders. As far as I can tell, there's no way to simply say "don't overwrite my border".

    Nevertheless, there are three solutions that I can think of right now:

    • don't overwrite the border characters (use move())
    • draw the box after you draw window contents, then refresh() the screen (you're probably still overwriting something, but at least it's not the border characters)
    • create a "border window" with borders and a "content window" inside of it, which of course starts at (border_window_start_y + 1, border_window_start_x + 1) and is two lines/columns smaller than the "border window"


    Just to make it more clear: the box() function doesn't add the property "this window has visible borders" to the window, it just prints border characters around the window.

    You are:

    • free to overwrite those border characters
    • supposed to be cautious if you don't want them overwritten

提交回复
热议问题