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

 

程序运行出来的界面:

 

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

 运行效果:

转载于:https://www.cnblogs.com/youuuu/archive/2011/07/25/2116370.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/298202.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

委派用户管理Hyper-v

在安装完成Hyper-v以后&#xff0c;默认情况下&#xff0c;只有管理员组的成员才有权限去管理Hyper-v&#xff0c;做一些诸如管理网络&#xff0c;管理虚拟机&#xff0c;管理磁盘等等的操作&#xff0c;普通用户没这个权限&#xff0c;从应用角度来说&#xff0c;如果公司所有…

这才是真正的蛙泳,还挺能蹦跶......

1 这才是真正的蛙泳▼2 给你们看看我平时藏起来的可爱▼3 沈腾这rap唱的跟闹着玩儿的似的▼4 能不能好好说话&#xff1f;▼5 建议再配套一张肛肠医院代金券▼6 这是我军培养出来的【特工鹅】吗&#xff1f;盯梢技能太强了▼7 钓鱼翻车现场▼你点的每个赞&#xff0c;我…

缓存机制 java_缓存机制:java中缓存的原理

外存&#xff1a;也就是我们经常说的(CDEF盘的大小)外储存器是指除计算机内存及CPU缓存以外的储存器&#xff0c;此类储存器一般断电后仍然能保存数据。常见的外存储器有硬盘、软盘、光盘、U盘等&#xff0c;一般的软件都是安装在外存中内存&#xff1a;内存是计算机中重要的部…

docker-compose 一键部署分布式配置中心Apollo

简介说起分布式肯定要想到分布式配置中心、分布式日志、分布式链路追踪等在分布式部署中业务往往有很多配置比如: 应用程序在启动和运行时需要读取一些配置信息&#xff0c;配置基本上伴随着应用程序的整个生命周期&#xff0c;比如&#xff1a;数据库连接参数、启动参数等,都需…

Sharepoint Designer 2007 Workflow

参考 http://office.microsoft.com/en-us/sharepoint-designer-help/collect-data-from-a-user-in-a-workflow-HA010209808.aspx 注意 这里的Review Document是一个Task List, 应该在site里面创建一个task list&#xff0c;可以用默认的Tasks.转载于:https://www.cnblogs.com/F…

uva705--slash maze

/*这道题我原本是将斜线迷宫扩大为原来的两倍&#xff0c;但是在这种情况下对于在斜的方向上的搜索会变的较容易出错&#xff0c;所以参考了别人的思路后将迷宫扩展为原来的3倍&#xff0c;这样就变成一般的迷宫问题了*/ 1 #include"iostream"2 #include"stdio.…

重磅公开!集14位名师教案的《最全高中数学解题思想方法汇编》

全世界只有3.14 % 的人关注了爆炸吧知识解数学题&#xff0c;除了掌握有关的数学知识之外&#xff0c;最好掌握一定的解题技巧甚至知道点解题思想。要知道高考试题的解答过程中蕴含着重要的数学思想方法&#xff0c;如果能有意识地在解题过程中加以运用&#xff0c;势必会取得很…

极域课堂管理系统软件如何取消控制_智慧物流自动化智能仓储管理架构分析

现阶段&#xff0c;智慧物流&#xff08;ztmapinfo.com.&#xff09;成为了时事热点&#xff0c;获得物流界广泛关注。许多 物流自动化系统、物流自动化设备都打出了智慧物流的幌子&#xff0c;在刚结束了的CeMAT亚洲物流展上&#xff0c;宣传展现智慧物流技术与商品的公司增加…

控制 Redis stream 的消息数量

控制 Redis stream 的消息数量IntroRedis Stream 是 Redis 5.0 引入的一个新的类型&#xff0c;之前我们介绍过使用 Redis Stream 来实现消息队列&#xff0c;可以参考之前的文章 使用 Redis Stream 实现消息队列&#xff0c;而 Stream 的消息会持久化地内存中&#xff0c;如果…

startindex 不能大于字符串长度_玩转云端丨redis的5种对象与8种数据结构之字符串对象(下)...

引言本文是对《redis设计与实现(第二版)》中数据结构与对象相关内容的整理与说明。本篇文章只对对象结构&#xff0c;1种对象——字符串对象。以及字符串对象所对应的两种编码——raw和embstr&#xff0c;进行了详细介绍。表达一些本人的想法与看法&#xff0c;也希望更多朋友一…

网友半夜差点被沐浴露吓死,众人:原来不止我胆小....

全世界只有3.14 % 的人关注了爆炸吧知识微博上有网友爆料说&#xff0c;他半夜上厕所差点被沐浴露吓死&#xff01;这么看可能不明显但是关灯的时候.....啊啊啊啊啊&#xff5e;结果引来众多网友的共鸣&#xff0c;原来大家都有类似遭遇....比如&#xff0c;你有被饮水机吓到过…

.NET 6 RC1 正式发布

昨天晚上微软发布了.NET 6的两个RC版本中的第一个版本&#xff0c;该版本将于11月正式发布&#xff0c;作为在开源MIT协议下整合所有不同的.NET开发模组件的开源跨平台实现。这是一个从2014年开始&#xff0c;持续多年的&#xff0c;以改变应用开发游戏规则的努力&#xff0c;由…

Winform开发中另一种样式的OutLookBar工具条

很早的时候&#xff0c;曾经写了一篇随笔《WinForm界面开发之“OutLookBar”工具条》介绍了OutLookBar样式的工具条&#xff0c;得到很多同行的热烈反馈&#xff0c;我个人也比较喜欢这样的工具条布局&#xff0c;因此我很多共享软件中&#xff0c;都经常看到这种OutLookBar的工…

r语言主成分分析_PCA主成分分析

PCA主成分分析最近遇到了主成分分析法这个东西&#xff0c;一开始我觉得简直天才啊&#xff0c;这个想法虽然从经济意义上来解释有点奇怪&#xff0c;毕竟是数学方法计算出来的解释因子&#xff0c;但鉴于没人知道现实世界究竟被多少因素影响&#xff0c;这种方法可以将最主要的…

宫崎骏动画里的新垣结衣见过没?简直美呆!

全世界只有3.14 % 的人关注了爆炸吧知识本文经机器之心&#xff08;ID&#xff1a;almosthuman2014&#xff09;授权转载参与&#xff1a;肖清、思尽管最近 2019 年的图灵奖颁给了计算机图形学、颁给了皮克斯 3D 动画&#xff0c;但很多人可能认为二维动漫更有意思一些。像宫崎…

更了吗?Windows 11 22000.184 推送

面向 Beta 频道的 Windows 预览体验成员&#xff0c;微软现已发布 Windows 11 预览版 Build 22000.184。Windows 11 Insider Preview Build 22000.184 主要变化如下&#xff1a;1.微软现已修复在Windows 11 OOBE&#xff08;开箱体验&#xff09;阶段了解 Windows Hello 更多详…

Effective C++ 学习笔记(11)

确定基类有虚析构函数 class A{public: A() { cout<<"A constructor"<<endl; }~A() { cout<<"A destructor"<<endl; }};class B: public A{public: B() { cout<<"B constru…

C#判断某软件是否安装

代码 privatevoidbutton1_Click(objectsender, EventArgs e) { if(checkAdobeReader() true) { MessageBox.Show("有安裝 Adobe Reader "); } else{ MessageBox.Show("沒有安裝 Adobe Reader "); } …

男朋友和女朋友的区别。。。

1 区别于这耳光来的也是猝不及防。。。2 铲屎官做的一个防止猫咪抢食的装置大概就是这只橘猫保持苗条的秘籍吧3 学生时代的爱情大概就是这样吧。。4 这样的哥哥给我来一打&#xff01;5 据我多年经验&#xff0c;应该是溺水身亡了6 治婊专家陈豪&#xff0c;专业补刀二十年&…

IronRuby - 如何在VS2010下调试IronRuby代码

在OpenExpressApp &#xff0d; 使用VS2010的CodedUI来做自己的自动化测试框架中介绍了我将使用IronRuby进行测试框架的编写。虽然Ruby已经非常的流行&#xff0c;我所在公司有的项目也深入的应用过&#xff0c;但它对于我来说还是非常新的&#xff0c;对它的认识也就是快速的看…