我创建了一个与其他窗口重叠的弹出窗口,我对其进行了修改,然后将其删除。但是当我这样做时,背景窗口会保留空格。
popup(){
WINDOW* backgroundWin = subwin(stdscr,0,0,100,100);
//fill it with something
WINDOW* popupWin = subwin(stdscr,50,50,10,10);
werase(popupWin); //so it doesn't look 'transparent'
box(popupWin,0,0);
wrefresh(popupWin);
getch();
werase(popupWin);
delwin(popupWin);
refresh(); //when I do this refresh the contents of the popup window stay, in this case blank spaces because I used werase
}
编辑: 根据这个使用touchwin(stdscr)刷新之前应该工作,但事实并非如此 http://linux.die.net/man/3/touchwin
答案 0 :(得分:1)
我看到了我的问题,当我需要创建一个新窗口时,我正在创建一个子窗口。 当我测试主窗口被更改的位置时,使用is_wintouched,它只在删除子窗口后返回true,我不知道为什么。
窗口位于窗口orig的中间,因此对一个窗口所做的更改将影响两个窗口。 http://linux.die.net/man/3/subwin