Невозможно правильно переписать ncurses (curscr, savewin), потому что раньше я выполнял ripoffline () - PullRequest
1 голос
/ 13 марта 2010

У меня есть программа C / ncurses, которую я отлаживаю / поддерживаю. Эта программа выполняет ripoffline дважды: во-первых, чтобы поместить строку заголовка, и во второй раз, чтобы поместить строку меню в верхней части страницы.

Мне нужно раскрыть некоторые меню, чтобы сохранить экран, прежде чем я открою меню. В функции InitMenu у меня есть следующий код:

 savewin = newwin (0, 0, 0, 0);
 overwrite (curscr, savewin);
 wrefresh(savewin)

Проблема в том, что savewin копируется С меню и сорванными линиями, но отображается на экране НИЖЕ сорванных строк. Это дублирует разорванные строки на экране.

Только понимание того, где проблема была, заняло у меня некоторое время. Теперь я понятия не имею, как это исправить. В идеале я хотел бы скопировать curscr в savewin без разорванных строк. Есть идеи?

1 Ответ

0 голосов
/ 14 марта 2010

curscr - это содержимое экрана физического дисплея, поэтому оно естественно включает в себя выделенные строки.

Вместо этого вы можете использовать stdscr, чего не будет. Вы также можете попробовать использовать copywin вместо overwrite - это даст вам больше контроля, в том числе позволит начать копирование в другом месте исходного окна.

...