【MFC】MFC中调用系统软键盘的几种方法

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);

 

程序运行出来的界面:

【MFC】MFC中调用系统软键盘的几种方法_第1张图片

 

2.添加"imm.h"和"imm32.lib"来调出软键盘

在你要调出软键盘的代码中引入"imm.h"头文件(若项目里没有这两个文件,则将这两文件复制到项目根目录里,并将"imm.h"添加到工程里)

#include  < Imm.h >   
#pragma  comment(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);

 运行效果:

【MFC】MFC中调用系统软键盘的几种方法_第2张图片

分类: C++/VB程序开发, WINCE程序开发

你可能感兴趣的:(null,mfc,输入法,微软,WinCE,程序开发)