我正在学习 ncurses,但遇到了“问题”。我可以制作一个带有文本的窗口,我可以更改窗口的颜色和背景的颜色(stdscr)。我的问题是,我无法制作窗口的阴影(黑色 ACS_BLOCKs)。我尝试了这些border()/wborder()
功能,但它没有达到我的预期。所以我想要这样的东西:
问问题
1003 次
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 回答