2012-05-24 2 views
1

나는 콘솔 기반의 C 프로젝트에서 작업 중이며 버튼이 있어야한다.C에서 TUI를 사용하여 버튼을 만드는 방법을 알려주세요.

  • 어떻게하면 되나요?
  • 어떻게 포커스를 관리 할 수 ​​있습니까?

나는 TUI를 만들기 위해 windows.h을 사용하고 있습니다.

+0

* How * "당신은 TUI를 만들기 위해 Windows.h를 사용하고 있습니까?" MEWEL 라이브러리 (대부분 잊어 버린)의 사본을 찾지 않았다면 불가능한 것 같습니다. MEWEL을 사용한다면 일반적인 Windows 프로그래밍과 마찬가지로 CreateWindow를 호출하고 BUTTON 클래스를 전달하여 버튼을 만들 수 있습니다. –

+1

포스터는 아마도 콘솔 I/O 함수 (SetConsoleCursorPosition, SetConsoleTextAttribute 등)를 참조합니다. 이것은 DOS 시대의 Borland conio.h 기능에 해당하는 "현대적인"기능입니다. – ChrisV

+0

@ChrisV : 나는 그들을 알고있다. NT 3.51/NT 4 시대에 다시 사용하는 몇 가지 코드를 작성했지만, "불가능에 가깝다"진술에 의거합니다. "현대적"이라고 말하지만 실제로는 좀 더 쉬웠습니다. * MS-DOS에서 콘솔 기능을 사용하는 것보다 텍스트 기반 UI를 작성하십시오. –

답변

3

기본적으로 패널 라이브러리 (ncurses에 추가)를 사용하고 "버튼 텍스트"가 포함 된 두 번째 창 (테두리 포함)을 만듭니다. 두 번째 윈도우가 첫 번째 윈도우 위를 플로팅하도록 z 순서를 지정하는 것을 잊지 마십시오.

그런 다음 키 탐색을 바인딩하고 다른 창의 마우스 입력/종료 루틴을 사용하여 "다음"원하는 창으로 포커스를 이동하고 강조 표시를 위해 해당 창 색을 전환합니다. 마지막으로 Enter/Space/무엇이든 버튼 클릭으로 캡쳐하는 키 핸들러를 윈도우에 제공하십시오.

메뉴 기능으로이 작업을 수행하는 더 좋은 방법이있을 수 있지만, 사실은 "메뉴 창"의 메뉴 디스플레이를 다른 작업에 연결하는 방법을 발견하지 못했습니다. 메뉴 창을 표시합니다.

관련 문제