What works for me, and I live at shell, is:
I use mrxvt with Xming server in Cygwin because it has (among many great features) a mouse scrollable buffer for which you can set to a specific amount of lines. You get a full-sized window screen with tabs and can configure: the amount of tabs on startup, the font size/type, fg/bg colors, and more in ~/.mrxvtrc config file. I have rxvt for an alternate because it does not need an X server (Xming).
I obtained mrxvt from sourceforge and compiled it using the commands {configure, make, make install}. I believe rxvt is available using the Cygwin installer/software updater.
Type configure (always check the results of configure to be sure everything is good), then type make, check to see if there are any compiler errors (warnings may be ok), if good then type make install to install mrxvt to /usr/local/bin.
It takes a little time to compile, but its so worth it.
Take a look at this mrxvt config file for an example:
http://dotfiles.org/~sleepyEDB/.mrxvtrc
Get Xming (compiled) from here:
http://www.straightrunning.com/XmingNotes/
I created a dos batch file which starts Xming and rxvt at the click of mouse, then I start mrxvt from rxvt. There are probably alternative startup methods, but this works for me because mrxvt and rxvt are not a child processes of the windows command shell.
The dos batch file contents:
start C:\cygwin\bin\rxvt.exe -sb -sl 3000 -fg gray -bg black -fn "Courier New-14" -km noenc -e /bin/bash --login -i
You can use screen, but scrolling is only by key combinations, not mouse like mrxvt.
The screen scroll mode: C-a [
Page up/down: C-f C-b
Half page up/down: C-u C-d
If you C-a d outside of scroll mode then (to reattach screen) type: screen -R
You will want to create entries in /etc/screenrc to set scrollback lines.
And set an bash alias screen='screen -c /etc/screenrc'