社区
C++ Builder
帖子详情
如何通过按钮打开windows的软键盘?
tigerwoods81
2005-10-21 04:31:57
我想通过按钮,能打开windows的软键盘,不知道怎么实现?我在网上找到过vc实现的,不知道bcb如何实现?
希望大家帮助!
...全文
1369
13
打赏
收藏
如何通过按钮打开windows的软键盘?
我想通过按钮,能打开windows的软键盘,不知道怎么实现?我在网上找到过vc实现的,不知道bcb如何实现? 希望大家帮助!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
XBox360
2005-10-24
打赏
举报
回复
system("osk"); 行不行?
tigerwoods81
2005-10-24
打赏
举报
回复
谢谢大家帮助,我已经解决拉!
weill
2005-10-23
打赏
举报
回复
以上VC代码利用的是IME式的输入法的基础之上的,纯E文输入是不依靠输入法的。
也就是说,输入组件中它吖就没那玩意儿,你上哪调去啊,呵呵。
怎么办呢?
方法一:自个写软键盘。
方法二:使用系统自带osk.exe。
方法三:把osk.exe打包到你的程序中,去调(这玩就保证没问题啦,哈哈)。
就不知道这个osk.exe是不是纯绿软件哦,呵呵。
据我所知,泡泡堂等玩的软键盘就是自个写的,这玩最可靠了。
别的方法应该没了。
对于代码的解释,实在不必了吧,就那几行,猜也猜个八九不离十了。
实在不懂,你去网上查一下那几个函数就明白了。
ccrun.com
2005-10-22
打赏
举报
回复
就那么几句代码,不用解释什么了吧。呵呵。
tigerwoods81
2005-10-22
打赏
举报
回复
呵呵,谢谢 weill(每天提一问,一天学一点),你真是热心呀,我又试了一下,确实没问题拉,不过切换输入法到英文时,软键盘会关闭,那我怎么输入英文,这还是不行,我中英文都要输入呀,最后能不能帮我解释一下这段代码每句是什么意思?
flowercity
2005-10-22
打赏
举报
回复
up
weill
2005-10-22
打赏
举报
回复
就你给出的VC代码来说,只能实现先打开输入法后,再打开软键盘的功能。
也就是说,这段VC代码及我给你的BCB的代码都是建立在IME式的输入法的基础之上的。
能够打开你的软键盘,也能关闭(请试我后来给你的那段程序)。
本人在win2k3下测试通过,应该没有问题。
此外,给你一个偏方:
使用DOS命令运行:osk.exe,呵呵。(XP/win2k/win2003下有效)
tigerwoods81
2005-10-21
打赏
举报
回复
谢谢楼上的帮助!我在2000下试了,果然可以打开,不过好象不能关闭,而且要开中文输入吧,不知能不能改进一下呀!
其实还想在2000和xp下实现,不过xp下不能打开软键盘.不知怎么回事!
weill
2005-10-21
打赏
举报
回复
嗯好了,原来是偶的扩号打错地方了,呵呵。
原来那一小段不是查输入法打开没。
输入法不打开,输键盘是不管怎么样调不出的。
嗯,有点意儿,代码修正如下:
HIMC hIMC = ImmGetContext(Form1->Handle);
DWORD dwConv, dwSent;
DWORD dwTemp;
ImmGetConversionStatus(hIMC,&dwConv,&dwSent);
if (dwConv & IME_CMODE_SOFTKBD){
dwConv &= ~IME_CMODE_SOFTKBD;
}else{
dwConv |= IME_CMODE_SOFTKBD;
};
ImmSetConversionStatus(hIMC,dwConv,dwSent);
ImmReleaseContext(Form1->Handle,hIMC);
weill
2005-10-21
打赏
举报
回复
麻烦来了……打得开,关不了,和和,不会非得手动关吧,偶再试试。
weill
2005-10-21
打赏
举报
回复
改编自VC代码。
因为对楼主的问题好奇就试了试,本人还没有完全看懂。
不过在win2003下调试成功,哈哈。
下面的代码中防止了你没打开中文输入法就开软键盘(你硬要那样的结果是什么我还没试,呵呵)。
注意,主窗体为Form1(默认)。
HIMC hIMC = ImmGetContext(Form1->Handle);//如果不是默认Form1
//请修改这儿的主窗体名。
DWORD dwConv, dwSent;
DWORD dwTemp;
ImmGetConversionStatus(hIMC,&dwConv,&dwSent);
if (dwConv & IME_CMODE_SOFTKBD)
dwConv &= ~IME_CMODE_SOFTKBD;
else{
dwConv |= IME_CMODE_SOFTKBD;
ImmSetConversionStatus(hIMC,dwConv,dwSent);
ImmReleaseContext(Form1->Handle,hIMC);//如果不是默认Form1
//请修改这儿的主窗体名。
}
tigerwoods81
2005-10-21
打赏
举报
回复
下面是vc实现的
void CHideDlgDlg::OnButton10()
{
// TODO: Add your control notification handler code here
CWnd * pWnd = GetDlgItem(IDC_TREE1);
if (pWnd){
pWnd->SetFocus();
HIMC hIMC = ImmGetContext(pWnd->m_hWnd);
DWORD dwConv, dwSent;
DWORD dwTemp;
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);
}
}
实际上好像vc有更简单的方法,
MSDN的解决方案是用:
SHSipPreference(hWnd, SIP_UP);
SHSipPreference(hWnd, SIP_DOWN);
我从来没有用过vc,也不知对不对?用bcb怎么实现呀?
Waiting4you
2005-10-21
打赏
举报
回复
把VC实现的拿出来瞧瞧再说嘛
全国计算机一级笔试试题
A、用鼠标左键单击
软键盘
上的Esc键 B、用鼠标右键单击
软键盘
上的Esc键 C、用鼠标右键单击中文输入法状态窗口中的"开启/关闭
软键盘
"
按钮
D、用鼠标左键单击中文输入法状态窗口中的"开启/关闭软键?
按钮
3. 在
Windows
...
入门学习Linux常用必会60个命令实例详解doc/txt
这是因为Linux和许多版本的Unix一样,提供了虚拟控制台的访问方式,允许用户在同一时间从控制台(系统的控制台是与系统直接相连的监视器和键盘)进行多次登录。每个虚拟控制台可以看作是一个独立的工作站,工作台...
新版Android开发教程.rar
QWERTY 全键盘; 310 万像素摄像头。 流媒体 支持视频格式: H.264 、流媒体、 3GPP 、 MPEG4 和 Codec 3GP ;支持音频格式: MP3 、 AAC 、 AAC+ 、 W MA 、 MPEG4 、 WAV 、 MIDI 、 REAL 、 AUDIO 和 OGG ;支持...
服务器端口怎么调出虚拟键盘,win10系统
打开
软键盘
win10怎么调出
软键盘
软键盘
是一种可以显示在电脑屏幕上的虚拟键盘,用鼠标就可以实现输入功能,可以代替键盘来使用,但是许多用户升级到win10系统之后却不知道要怎么
打开
软键盘
,其实方法有很多,这就给大家带来win10系统
打开
软键盘
的四...
计算机的
软键盘
在哪里,如何调出
软键盘
_怎么在电脑上调出
软键盘
_如何调出搜狗
软键盘
-Guide信息网...
windows
操作系统内都自带有
软键盘
,那么win7
软键盘
怎么调出来?可以用快捷键跳出来,也可以用第三方输入法
打开
软键盘
。下面看看win7系统调出
软键盘
输入信息的两种方法。1、在电脑桌面,单击【开始】,点击【运行】。...
C++ Builder
13,825
社区成员
102,679
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章