Subscribe to Feeds Subscribe to Tweeters
24 Май

Показать/ убрать клавиатуру (sip)

Freesmska -> WinApi WinMobile -> Показать/ убрать клавиатуру (sip)
Будь в курсе. Подпишись по e-mail:       

winapi примеры

Привет, дорогие читатели. Решил открыть новый раздел осваиваемых мной winapi функций. Поделится с вами, что я откопал и как этим пользоваться.

Начнем с того, что WinApi — это набор базовых функций, позволяющий наиболее близко работать с операционными семействами Windows, что делает ваши программы более гибкими и удобными.

Так как последнее время я отошел от C#, то здесь буду выкладывать только WinApi для С++ (Qt).

Почему я стал интересоваться WinApi функциями?! Все очень просто, скорость выполнения программы написанной на данных функциях превышает скорость C#, Qt в несколько раз. А так же не один язык программирования не дает такую гибкость написания программ, как WinApi.

Приведу пример, в котором без WinApi просто не обойтись, допустим у Вас есть клавиатура (sip) у кпк и она располагается не в нижнем углу экрана, а чуть повыше, используя WinApi sip Вы легко сможете подвинуть клавиатуру в любую точку экрана.

Теперь перейдем не посредственно к тем функциям, что я сегодня приготовил:

Проблема, с которой я столкнулся: Qt удобный кросс платформенный комплекс, позволяющий Вам писать легко программы и портировать их на другие  платформы. Пишу я программу для кпк на нем, сделал данную программу во весь экран и добрался до того момента, когда мне потребовалось вводить текст в поле ввода. Так как прога полноэкранная, то разумеется к кнопочке вызова клавиатуры у меня доступа нет и функций, позволяющих вызвать клавиатуру я тоже не нашел.

После недолгих размышлений пришел к выводу: либо используем winapi, либо пишем свою клавиатуру.

Решил пока не мудрить и использовать winapi для sip клавиатуры. Далее привожу полный код sip keyboard api.
[code lang=»cpp»]
#include "sip.h"
#include "sipapi.h"

HWND sip = FindWindow(TEXT("SipWndClass"),NULL);
RECT oldSize;
GetWindowRect(sip,&oldSize);
LONG x =0;
LONG y =195;
LONG w =oldSize.right-oldSize.left;
LONG h = oldSize.bottom-oldSize.top;
SetWindowPos(sip,HWND_BOTTOM, x, y,w,h,SWP_NOZORDER);
//показать клаву
ShowWindow(sip, SW_SHOW);
//скрыть клаву
ShowWindow(sip, SW_HIDE);
[/code]
Данный код позволяет вам отображать клавиатуру в любой точке экрана вашего кпк изменяя положение точек x и y. Вот и первые sip api, которые могут пригодится в хозяйстве.

100% зрение без операций

Будь в курсе. Подпишись по e-mail:      

У вас есть мнение? Оставьте свой отзыв: