2

我创建了一个与其他窗口重叠的弹出窗口,我对其进行了更改,然后将其删除。但是当我这样做时,背景窗口会保留空白。

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

 }

编辑:根据this using touchwin(stdscr) before refresh 应该可以工作,但它不是 http://linux.die.net/man/3/touchwin

4

1 回答 1

1

我看到了我的问题,当我需要创建一个新窗口时,我正在创建一个子窗口。当我使用is_wintouched测试更改主窗口的位置时,它仅在删除子窗口后才返回true,我不知道为什么。

窗口位于窗口原点的中间,因此对一个窗口所做的更改将影响两个窗口。 http://linux.die.net/man/3/subwin

于 2013-04-17T21:53:07.313 回答