1

ncurses を学習していて、「問題」に遭遇しました。テキストを含むウィンドウを作成できます。ウィンドウの色と背景 (stdscr) の色を変更できます。私の問題は、ウィンドウの影 (黒い ACS_BLOCK) を作成できないことです。関数を試してみましたborder()/wborder()が、期待どおりの結果が得られませんでした。だから私はこのようなものが欲しい:

影があなたを見ている

4

1 に答える 1

3

更新:私は自分でそれを理解しました:

WINDOW *create_window(int y, int x, int width, int height, int color_id){
    WINDOW* win;
    int i;

    win = newwin(height, width, y, x);
    wbkgd(win, A_NORMAL | COLOR_PAIR(color_id) | ' ');

    /* start of shadow */
    attron(COLOR_PAIR(3));

    for(i = (x + 2); i < (x + width + 1); i++){
        move((y + height), i);
        addch(' ');
    }

    for(i = (y + 1); i < (y + height + 1); i++){
        move(i, (x + width));
        addch(' ');
        move(i, (x + width + 1));
        addch(' ');
    }
    attroff(COLOR_PAIR(3));
    /* end of shadow */

    refresh();

    return win;
}
于 2015-06-25T21:08:18.460 に答える