To the OP, if you are still really keen on using Directx and windows. You can just create the Win32 code and read the input via RawInput. If you are targeting only a windows platform, DX is as good as in can get. With DX11 it can automatically scale to user hardware base on D3D_FEATURE_LEVEL. So no worries if user is only have DX9 hardware.
On the other hand. If you want to achieve cross platform, then you should use SFML and Opengl. Since opengl is supported on almost all platform, it would be easy to port code. i.e. you don't have to support 2 renderers.
However in my opinion, currently opengl is slightly lagging behind DX in terms of capabilities. e.g HLSL can now allow a certain degree of OO-ness in it which reduce the need of uber shaders, along with other stuff. It is not much a big deal since opengl would eventually catch up
Opengl and DX are basically just playing a game catch up with each other. To date I think DX is at an edge ever since dx10.1 and dx11 came out. Before that opengl was leading =) I am sure this cycle repeats itself.
regards