Are u going to stay with Micro$oft for the rest of ur life or also try the malwarefree world???? If u choose the second one then C++ would be the better choice.
And by referring to visual basic, do u mean VB6 or VB.Net??? With the .NET technology (mostly for the M$ dream to defeat Sun Java), M$ is trying to converge the underlying technology, such as VB.Net, C# and ASP.NET (couldn't tame MFC yet though), so staying with M$ would require you to learn that, but my view is VB and C++ (MFC for that matter) are not mutually exclusive and its better if u learn them both. After all, they are not competing but co-operating technologies.
But may be u should give more weightage to C++ (ANSI C++ that is).