I am sorry to say Winapi is really ugly. I guess no one can run away from winapi if a decent Windows application is to be written. I have not used Visual Basic at all. But there are a lot of Visual Basic resources in the internet. It supposed to be much more intuitive than C or C++. However, when dealing with the bsiac of Windows, Winapi seems to be the only solution.
After a few days of struggling, I think I have solved most of the problems that I need.