Visual Studio Express editions are nice and free, but Visual C++ 2005/2008 Express seem to be lacking in the code completion (or Intellisense as it's officially known) department. If I recall correctly, in MSVC++ 2003 (version 7.1, that is) Intellisense worked perfectly. When writing new code, Intellisense picked it right away, even without saving the source file. I never had any problems with it.
In MSVC++ 2005 and 2008 (Express editions, I haven't tried the full featured versions – although I doubt they'd work any better..), the code completion has definitely taken a step backward. It just doesn't work as nicely as it did in MSVC++ 2003. It seems to parse the source files quite lazily, and sometimes just doesn't work at all. When given a moment, it works again. I've found out that switching between Release and Debug from the toolbar dropdown causes "Updating Intellisense…" to appear in the status bar. That helps, but it's still not very convenient.
As I recently installed and compiled Qt 4.4, I noticed that Qt classes would not be in the code completion list at all. I included Qt's include
-directory to the "VC++ Directories" in Options. That wasn't enough. Finally I got it working by including "$(QTDIR)\src"
to the "Source files", and listing all the Qt include
subdirectories separately in "Include files".