MFC 中呼叫系統軟鍵盤的幾種方法

2021-07-05 02:53:26 字數 1385 閱讀 3143

1.

直接執行微軟系統自帶的虛擬鍵盤程式「

osk.exe」

在普通mfc

專案中可以呼叫

shellexecute

或者winexec

方法來直接執行微軟系統自帶的虛擬鍵盤程式「

osk.exe

」,十分方便一句話就可以搞定。

shellexecute:

shellexecute(getsafehwnd(), null, _t("osk.exe"), null,null,sw_normal);

winexec:

winexec("osk.exe",sw_normal);

程式執行出來的介面:

新增"imm.h"

和"imm32.lib"

來調出軟鍵盤

在你要調出軟鍵盤的**中引入

"imm.h"

標頭檔案(若專案裡沒有這兩個檔案,則將這兩檔案複製到專案根目錄裡,並將

"imm.h"

新增到工程裡)

#include

#pragmacomment(lib,"imm32.lib") 

然後在調出軟鍵盤的訊息事件中新增如下**即可:

himc himc =immgetcontext(pwnd->m_hwnd);  //

獲取接受輸入的視窗控制代碼

dword dwconv, dwsent; 

immgetconversionstatus(himc,&dwconv,&dwsent); 

if (dwconv & ime_cmode_softkbd) 

dwconv &= ~ime_cmode_softkbd;//

關閉軟鍵盤

else 

dwconv |= ime_cmode_softkbd; //

開啟軟鍵盤

immsetconversionstatus(himc,dwconv,dwsent);//

開啟或關閉軟鍵盤

immreleasecontext(pwnd->m_hwnd,himc);  

但這種方法似乎只能在輸入法開啟的狀態下才可以開啟軟鍵盤 3.

在wince

上執行的

mfc中使用

sipapi

來調出軟鍵盤

為專案新增"sipapi.h"

標頭檔案,並在**中把這個標頭檔案包括進來

這個標頭檔案如果不加呼叫的是小鍵盤,加了呼叫的是大鍵盤

調出軟鍵盤的方法呼叫起來很簡單,就一句話而已。

開啟軟鍵盤:

sipshowim(sipf_on);

關閉軟鍵盤:

sipshowim(sipf_off);

執行效果:

Flex呼叫Windows的系統軟鍵盤

在windows系統中,可以通過命令開啟系統軟鍵盤,具體的做法如下 1.進入命令列 2.輸入 osk 回車。製作乙個bat檔案,裡面只有 osk 三個字元 程式設計執行這個bat檔案。file file.resolvepath c windows system32 cmd.exe var v vec...

監聽軟鍵盤中的刪除鍵

最近因為專案需要,要監聽軟鍵盤中的刪除鍵,在網上搜了大部分的說法,用onkeylistener,但是不知道為什麼,設定後並沒有效果,最後自己通過dispatchkeyevent實現了,如下 override public boolean dispatchkeyevent keyevent event...

Android的軟鍵盤和主題衝突的解決方法

把布局的layout換成這個layout試一下 問題描述.我們要做乙個狀態列設定顏色 也就是和我們的主題色一致的效果 我把主題換成 noactionbar的主題了,然後就出現很多彈出軟鍵盤的時候布局沒有移動的bug.找了很久找到這個方法希望對你有幫助.需要注意的是這個方式解決只能相容到21及以上版本...