A quick explanation of what happens between GDI/DirectX/OpenGL/etc. and your graphics hardware:
At the lowest level you have the graphics hardware, which is basically a GPU capable of performing lots of operations. You execute these operations by writing operation codes into the registers of the GPU, much in the same way as your CPU. This is what the device driver takes care of for you. To write such a driver you would need the documentation for the graphics hardware you are using (explaining what the different registers do and how to use them properly). The device driver provides an interface to a graphics subsystem such as GDI, to further abstract it from the hardware and GDI provide you with an interface for drawing stuff on the screen (or any other output device).
1) If you don't know what double buffering is, you can read up on it here. Basically you are alternating between two buffers, reading from one (drawing to the screen), while you write to the other.
2) Blitting is essentialy performing a so-called raster operation (ROP) which is basically - as valaris is saying - copying memory from one location to another. This raster operation involves combining the source and destination memory locations using a boolean formula (consisting of OR, AND, NOT and XOR operations). You could of course reinvent the wheel by implementing this yourself (by interfacing directly with the device driver), but you would loose abstraction, which is the purpose of GDI (GDI also implementing the same interface for not only monitors but also other output devices, such as printers), OpenGL, DirectX and other graphics libraries.
3) As valaris says, just cast the floats to an integer:
Code:
float flt = 10.12;
int i = (int)flt;
GDI was not designed for doing 3D graphics. It was designed for simplifying output to any output device, hence it has for instance no synchronization with the framebuffer or rasterization (converting vector grapics to raster graphics) capabilities.
I would advice you to not write your own graphics layer, and in stead use an existing one, OpenGL is a great start. Buy yourself a book and start coding. It takes years of experience and tremendous effort way beyond the capacity of one person to implement such functionality as OpenGL and DirectX provides.