your program will work well, efficiently, and in a friendly manner.
Please don't use those three adverbs when describing the operation of a visual basic program. It causes something deep inside me to scream. Particularly number two. Any time "Hello World" doesn't compile small enough to fit on a disk (including installer), something's wrong.
Yes, it allows you to write code more caressly, but it's the programmer's fault most of the time
When it's a compiler feature to deal with crappy structure and you have to include the command OPTION EXPLICIT to get the compiler to make you be a good boy, it's a language for my little sister. VB is the LOGO opiate of the masses. Do your time and get out.
VB's good for prototyping, but all of that's assuming you can tolerate Windows and it's incredible sense of bloat long enough to do anything. The only things I would consider actually developing in VB is simple windows programs I don't care about and Microsoft Office integration. I mean, if it's a feature of your software that it's supposed to be inefficient and only work on one type of platform, then sure, use VB. Oh, and the ActiveX integration sucks. Always has since the first 32 bit release (4.0, I believe, which included both a 16-bit version and a 32-bit version.)
I don't write mouse drivers because I don't have a need to write them. But there's no way on God's green earth that I'm going to write my touchscreen drivers in VB. Or anything MFC related, for that matter. The code has to be able to work on linux, windows, what-have-you. And I obviously can't do anything from Drug-Dealer Microsoft and their Visual Studio Bloatware Suite.
It's not like I'm spouting off crap about VB with no basis. I've used it since 3.0. No idea how many years that is... probably around 10. And I will take VB over any of the other Visual Studio products. If all you've programmed in is something like QBasic, VB will get you out of DOS and into the Windows development arena. Whether that's a good thing or a bad thing... is up to you.
Now, back on track. Whether you want to learn C or C++ depends on what you want to do. I'm guessing more application-based programming, so I'd go with C++. When the time comes for you to start messing around with drivers or linux development and you want to start writing lower-level code, C won't be that bad of a transition.
I'm starting to get more into assembly, myself. When I'm not doing the mandatory web-based scripting thing.