Subclassing is a way of getting more events than vb fires, or changing those events before vb gets them. To do this you have to understand what goes on behind the scenes before an event is fired. Say the user clicks a button you've put on the form.

The mouse sends a message to the mousedriver saying it's been clicked

The mousedriver then sends a message to windows saying the mouse has been clicked,

Windows decides which window has been clicked(in this case your command button, which like anything you can see on the screen is a window) and calls it's window procedure with information saying that the mouse has been clicked and where it is on the screen.

VB sends a click event to your code.

there's a few more steps in there probably some I don't know about as well but these are the important ones.

when you subclass you tell windows that the default window procedure is your own procedure and not VB's window procedure, so Your code gets information about everything that happens to the window and can changeit before vb gets to it

for example you could use subclassing to trap a click event on a picture before vb gets to it and check where it is on the picture then only send it if the click is on part of the picture you want and ignore it if it isnt.

unfortunatly subclassing is very dangerous because vb isn't handling your errors for you so If you mke a mistake VB will crash and you'll loose all your saved information. That's happened to me 8 times today and I've only been up for 2 hours.

Any Decent book on the API will explain subclassing or just check out the tips on this site and it's partners there's bound to be something there.

Hope this helps