I've poked around and think i know how windows are handled in mIRC, so in theory this actually should be simple to add to mIRC and could result in some MAJOR benefits. A while back i was asking about how to handle knowing when new lines of text are appended to any given windows buffer because its extremely taxing or difficult to determine new lines accurately within a window when its buffer has reached maximum and starts trimming lines to append new ones.
If my guess is correct, mIRC has some sort of array of strings for lines, most likely a vector which is a class or typedef struct which contains information like stripped line, color coded line, line color, etc.. My reason for this guess is the actual buffer area for displayed text is really a static control which has no simple method of mutli-coloring text like that, so somewhere theres a buffer, a scrollheight is set on the scrollbar and a custom event given to the scrollbar/wm_paint/etc to update the window by some means of GDI drawing of text. This would explain why scrolling is also odd unlike most windows programs that use a built in control.
You know when a buffer is being appended to, trimmed, etc so by theory it should be an EXTREMELY simple implementation to fire off a "bufferchange/windowupdate/echo/whatever you wanna call it" event to signal that the last line in a window is new no matter what it is (script echo, join, part, quit, script error, disconnect, etc..)
I know it has been suggested in the past, and many people seem to reply it would be too difficult to implement but I really don't see how when somewhere that array of lines in a window is maintained.