저주 창 내부에 무언가를 쓰려고하는데 경계선에도 쓰는 것 같습니다. 아래 코드를 수정하려면 어떻게해야합니까?테두리가 아닌 창 안쪽에 인쇄하기
커스에서win_self = newwin(LINES/2, COLS, 0, 0);
box(win_self, 0, 0);
wrefresh(win_self);
wprintw(win_self, "foobar");
저주 창 내부에 무언가를 쓰려고하는데 경계선에도 쓰는 것 같습니다. 아래 코드를 수정하려면 어떻게해야합니까?테두리가 아닌 창 안쪽에 인쇄하기
커스에서win_self = newwin(LINES/2, COLS, 0, 0);
box(win_self, 0, 0);
wrefresh(win_self);
wprintw(win_self, "foobar");
, box()
의해 생성 테두리 내부 테두리이다. 내가 말할 수있는 한, 단순히 "내 경계를 덮어 쓰지 마라"라고 말할 수있는 방법이 없습니다. 다음, 당신이 창 내용을 그릴 후
move()
사용) : 는 그럼에도 불구하고, 내가 지금 생각할 수있는 세 가지 솔루션이 있습니다 refresh()
화면 (여전히 덮어 쓰고 있지만 적어도 테두리 문자가 아님)
box()
기능은이 "이 창을 볼 국경이있다"속성을 추가하지 않습니다 : ow_start_x + 1)은 "국경 창"
그냥 좀 더 명확하게하는 것보다 두 행/열 작 창에서 테두리 문자를 인쇄합니다.
당신은 다음과 같습니다
내가 가장 쉬운 방법은 만드는 것입니다라고 말하고 싶지만하지 않을 경우
win_self = newwin(LINES/2, COLS, 0, 0);
box(win_self, 0, 0);
derwin_self = derwin(win_self, LINES/2 - 2, COLS - 2, 0, 0);
wprintw(derwin_self, "foobar");
나는 임시 해킹으로 세 번째 솔루션을 선택했습니다. 이제는 해킹이 '생산 코드'인 것 같습니다. – Alexandru
네, 최선의 해결책이라고 생각합니다. – Philip
세 번째 것은 실제로 좋은 아이디어이며 구현했습니다. 하지만 지금은 여러 겹치는 창과 패널에 문제가 있습니다. 나는 바깥 쪽 테두리를 패널에 할당하지만, 내가 닫을 때 (숨기기) 아래의 다른 윈도우는 아래 패널에 할당되지 않은 윈도우에 대해 새로 고쳐지지 않습니다.이 문제도 해결할 수 있습니까? 아마 추가 패널일까요? – aurora