일반적으로 휠 마우스 이벤트는 버튼 4 및 5로 표시됩니다. "all-events"플래그에는 해당 플래그가 포함됩니다. 관심있는 버튼의 플래그 조합을 대신 사용하면 원하는 결과를 얻을 수 있습니다.
manual page은 사용 가능한 플래그 (ncurses.h 헤더 파일에서도 볼 수 있음)를 나열하지만 단 하나의 버튼에 대한 모든 이벤트에 대해 동일한 사전 정의 된 기호는 없습니다.
그런데 ncurses5 (ncurses6 was released in August 2015)에서는 비트가 할당 된 방식으로 인해 버튼 5를 감지 할 수 없습니다. 버튼을 5 보고서 마우스 위치로 마스크의 같은 섹션 사용한 것이기 때문에 헤더 파일에서이 섹션에서 귀하의 질문에 관련된 : 당신은 ncurses5과 버튼 4을 얻을 것이다
/*
* In 32 bits the version-1 scheme does not provide enough space for a 5th
* button, unless we choose to change the ABI by omitting the reserved-events.
*/
#if NCURSES_MOUSE_VERSION > 1
#define BUTTON5_RELEASED NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_RELEASED)
#define BUTTON5_PRESSED NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_PRESSED)
#define BUTTON5_CLICKED NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_CLICKED)
#define BUTTON5_DOUBLE_CLICKED NCURSES_MOUSE_MASK(5, NCURSES_DOUBLE_CLICKED)
#define BUTTON5_TRIPLE_CLICKED NCURSES_MOUSE_MASK(5, NCURSES_TRIPLE_CLICKED)
#define BUTTON_CTRL NCURSES_MOUSE_MASK(6, 0001L)
#define BUTTON_SHIFT NCURSES_MOUSE_MASK(6, 0002L)
#define BUTTON_ALT NCURSES_MOUSE_MASK(6, 0004L)
#define REPORT_MOUSE_POSITION NCURSES_MOUSE_MASK(6, 0010L)
#else
#define BUTTON1_RESERVED_EVENT NCURSES_MOUSE_MASK(1, NCURSES_RESERVED_EVENT)
#define BUTTON2_RESERVED_EVENT NCURSES_MOUSE_MASK(2, NCURSES_RESERVED_EVENT)
#define BUTTON3_RESERVED_EVENT NCURSES_MOUSE_MASK(3, NCURSES_RESERVED_EVENT)
#define BUTTON4_RESERVED_EVENT NCURSES_MOUSE_MASK(4, NCURSES_RESERVED_EVENT)
#define BUTTON_CTRL NCURSES_MOUSE_MASK(5, 0001L)
#define BUTTON_SHIFT NCURSES_MOUSE_MASK(5, 0002L)
#define BUTTON_ALT NCURSES_MOUSE_MASK(5, 0004L)
#define REPORT_MOUSE_POSITION NCURSES_MOUSE_MASK(5, 0010L)
#endif
을하지만, 버튼 5가 균열을 빠져 나옵니다 (일부 이벤트가 나타날 수 있지만 버튼 5임을 알리는 방법은 없습니다). 마스크는 휠 마우스가 논의하기 전에 설정되었습니다 (1995 년 말).
ncurses 5를 사용 중이므로 BUTTON4 이벤트를 수신하지 않아도됩니까? REPORT_MOUSE_POSITION 이벤트 만받습니다. – Nathan