Blast from the past. It's been a while since I've reverse engineered anything into UML so my knowledge may be outdated.
In any case, as far as I remember, code reverse engineering using Visio is a Visio feature not a Visual Studio feature, thought some versions of Visual Studio have their own modelling features.
In order to use Visio reverse engineering you need make sure the Visio UML addin is installed (it should be available in Professional and above versions of Visio, but may not be installed by default.)
Here's a rather old step by step of the process for an old version of Visio and Visual Studio. I don't think the process has changed that much (though obviously the languages supported have changed.)
In any case I never liked Visio for UML (truth be told I never liked Visio.) I rather liked Sparx System's Enterprise Architect for modelling, and their reverse engineering was quite good when I used it on .Net 2.0. I don't know how their current version copes with the newer features. I also like their "from scratch" modelling environment better.
Finally keep in mind UML is supposed to be a modelling not a programming language. I.e. it is meant to convey the high level design so the overall architecture of a solution can be more easily understood; or to model key dynamic interactions, again, so the implemented or proposed solutions to the modeled problem can be more easily understood.
Reverse engineered UML diagrams often have too much information for them to be useful, and it is difficult in any case to translate the precise semantics of a specific language into UML. You may be better off creating diagrams from scratch. Other than deployment and package diagrams, it should be understood that UML diagrams represent a high level overview or specific high level dynamic interaction representation, not an as-developed representation.