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

本文介绍了三种在不同环境下调用软键盘的方法:直接运行osk.exe、通过添加imm.h和imm32.lib来调用,以及在WINCE上使用SipApi调用软键盘。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


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

程序运行出来的界面:


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

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

#include <Imm.h> 

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


运行效果:



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值