You can already join channels automatically on connect-- there are many ways you can do this. Probably the most intuitive way is to add the channel to your Favorites (Alt+J) and check the [x] Join on connect box. There is also a [x] Minimize on join box for you too.

I'm not sure what you mean for "join on connect for every chan"-- every channel you're currently on? This sounds like a feature best tackled by a script. You can use the following 3 line snippet to remember channels you were connected to and rejoin them when mIRC restarts (the -n switch on line 1 joins the channels minimized):

Code:
on *:CONNECT:var %c = $readini(channels.ini,channels,$network) | if (%c) join -n %c
on ME:*:JOIN:#:writeini channels.ini channels $network $addtok($readini(channels.ini,channels,$network),#,44)
on ME:*:PART:#:var %c = $remtok($readini(channels.ini,channels,$network),#,0,44) | $iif(%c,writeini,remini) channels.ini channels $network %c


As for the colours, this is a good idea. It was suggested here and probably a few times before.