The question says it all, really. I am looking for books or resources I can use to self-teach regarding event-driven programming. I have a decent grasp on the program flow of smaller programs that don't have a GUI (procedural programming, I think); basically the code doesn't interact with the user beyond command-line arguments, or sometimes a text-based menu.
In order to move past that, what books or references would you recommend to learn event-driven programming? In particular, code organization tips and some real-life examples would be great. I'd like to learn proper technique and minimize picking up bad habits. :)
Edit: Also, is there any difference between how event-driven programming is done on Linux versus on Windows? Besides the obvious API differences..