I tried this and it seems that works but it needs some changes i believe.
Code:
int main()
{
HANDLE stdinInput = 0;
DWORD numEvents = 0;
DWORD numEventsRead = 0;
DWORD numReceivedRecords = 0;
DWORD fdwSaveOldMode;
DWORD fdwMode;
WINDOW *pad;
WINDOW *input_window;
char dataBuffer[100];
int bufferLen = 0;
int height = 1;
int width = 77;
int starty = 26;
int startx = 0;
int line = 0;
stdinInput = GetStdHandle(STD_INPUT_HANDLE);
if (stdinInput == INVALID_HANDLE_VALUE)
perror("GetStdHandle");
if (! GetConsoleMode(stdinInput, &fdwSaveOldMode) )
perror("GetConsoleMode");
fdwMode = ENABLE_LINE_INPUT | ENABLE_ECHO_INPUT;
if (! SetConsoleMode(stdinInput, fdwMode) )
perror("SetConsoleMode");
initscr();
cbreak();
// Pad (pad) Properties
pad = newpad(100,80);
scrollok(pad,TRUE);
prefresh( pad, 0, 0, 0, 0, LINES-1, COLS-1);
// Input window (input_window) properties
input_window = newwin(height,width,starty,startx);
touchwin(input_window);
keypad(input_window,TRUE);
start_color();
init_pair(1,COLOR_WHITE, COLOR_RED);
wbkgd(input_window,COLOR_PAIR(1));
wmove(input_window,1,1);
wrefresh(input_window);
while(TRUE)
{
GetNumberOfConsoleInputEvents(stdinInput, &numEvents);
if (numEvents != 0) {
INPUT_RECORD eventBuffer;
ReadConsoleInputA(stdinInput, &eventBuffer, 1, &numEventsRead);
if (eventBuffer.EventType == KEY_EVENT) {
if(eventBuffer.Event.KeyEvent.bKeyDown)
{
if(eventBuffer.Event.KeyEvent.wVirtualKeyCode != VK_PRIOR && eventBuffer.Event.KeyEvent.wVirtualKeyCode != VK_NEXT )
{
if(wgetstr(input_window,dataBuffer) != ERR)
{
mvwprintw(pad,line,0,"%s\n",dataBuffer);
line++;
prefresh( pad, 0, 0, 0, 0, LINES-1,COLS-1);
werase(input_window);
wmove(input_window,1,1);
}
}
if(eventBuffer.Event.KeyEvent.wVirtualKeyCode == VK_PRIOR)
{
printw("Page Up Pressed\n");
refresh();
}
if(eventBuffer.Event.KeyEvent.wVirtualKeyCode == VK_NEXT)
{
printw("Page Down Pressed\n");
refresh();
}
}
}
}
Sleep(10);
}
//getch();
endwin();
return 0;
}