To disable that behavior:
In the Options for the built-in Windows keyboard, uncheck the "Use the Input Panel tab" option.
To use your own keyboard:
You'll have to design your own and then handle the Enter/Leave events on your main application's text controls and then show/hide your keyboard accordingly. Make sure you don't steal focus from your application when pressing keys in your custom keyboard.