gpt4 book ai didi

ncurses - 如何在 NCurses 中添加窗口填充?

转载 作者:行者123 更新时间:2023-12-01 05:10:54 38 4
gpt4 key购买 nike

我有我的 window

WINDOW *win = newwin(40, 40, 3, 3);

当输入一些文本并跨越更多行时,保留窗口内边框周围整齐空白的最佳方法是什么?我似乎找不到在 NCurses 中为窗口提供这种属性的方法。

我想制作填充的一种方法是在这个窗口中创建另一个窗口。必须有更清洁的方法。

最佳答案

威廉麦克布林绝对肯定。在窗口周围保留框的最简单方法是在围绕它的窗口中创建框。那是因为

  • 内盒的变化对盒子没有影响
  • 有一个功能box它沿着给定窗口的边缘绘制一个框。

  • 一些 ncurses 测试程序使用此功能。例如,主测试程序中的菜单项之一(在 ncurses.c 中) responds to a w 通过创建一个窗口来保存框,然后创建一个窗口来保存其内容,并在继续接受新的内部框中的输入之前在前者中绘制一个框:
        } else if (c == 'w') {
    int high = getmaxy(win) - 1 - first_y + 1;
    int wide = getmaxx(win) - first_x;
    int old_y, old_x;
    int new_y = first_y + getbegy(win);
    int new_x = first_x + getbegx(win);

    getyx(win, old_y, old_x);
    if (high > 2 && wide > 2) {
    WINDOW *wb = newwin(high, wide, new_y, new_x);
    WINDOW *wi = newwin(high - 2, wide - 2, new_y + 1, new_x + 1);

    box(wb, 0, 0);
    wrefresh(wb);
    wmove(wi, 0, 0);
    remember_boxes(level, wi, wb);
    wgetch_test(level + 1, wi, delay);
    delwin(wi);
    delwin(wb);

    wgetch_help(win, flags);
    wmove(win, old_y, old_x);
    touchwin(win);
    wrefresh(win);
    doupdate();
    }

    关于ncurses - 如何在 NCurses 中添加窗口填充?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25066267/

    38 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com