To make a video game you have to use a API such as win32, directx, opengl, or perhaps SDL. I like combination of SDL and opengl alot. You can use C++ but you can also use other languages with some of these.
win32- this is microsofts older library that allows you to make windows applications that have windows.
Direct-x allows you to access the systems input, sound, and video hardware with a very high level abstract programming language
Open GL and SDL basically compete with direct-x.
Typically you use a programming language to write an application that will communicate with these other software components.
Last year I wrote a small 3d engine for fun with c++, opengl, and SDL. You could run around in a small 3d world, it had some physics, you could also shoot a gun. I also made a 2d-game that was much more complete than the 3d game. I quit working on the 3d-game because it was more of a learning experiment and I was busy with school.