最近想做一个虚拟键盘,遇到了一个问题请教

lang14 2012-10-09 04:20:49
比如我打开记事本,然后用我的软件向记事本输入字符,这里焦点是在记事本,然后我在点击软件上的按钮(比如'a'),这里焦点就会在对话框上,点完之后焦点重新跑到记事本,在这个过程中,就会出现当你点击按钮时,记事本和对话框会抖到一下,想请教各位,这个问题有什么好的方法解决吗?我是想点击对话框上的按钮时,焦点一直在记事本中,
...全文
150 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lang14 2012-10-10
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
http://blogs.msdn.com/b/codefx/archive/2012/10/06/sample-of-oct-5th-create-a-soft-keyboard.aspx
看看这个
[/Quote]
里面好像找不到C++版的
zacc 2012-10-10
  • 打赏
  • 举报
回复
http://blogs.msdn.com/b/codefx/archive/2012/10/06/sample-of-oct-5th-create-a-soft-keyboard.aspx
看看这个
傻X 2012-10-09
  • 打赏
  • 举报
回复
用SetWindowLong设置窗体属性为SWP_NOACTIVATE
无法获得焦点。

但是这个方法会阻碍你虚拟键盘窗口的移动。
你虚拟键盘点击窗体用这个来移动
SendMessage(hWnd,WM_NCLBUTTONDOWN,HTCAPTION,0)

具体的你实验下
oyljerry 2012-10-09
  • 打赏
  • 举报
回复
http://download.csdn.net/detail/iamah/1564080
lang14 2012-10-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
你可以参考一下输入法程序是怎么做的,一般输入法窗口不会获取焦点~
[/Quote]
谢谢,我再找找资料
Eleven 2012-10-09
  • 打赏
  • 举报
回复
你可以参考一下输入法程序是怎么做的,一般输入法窗口不会获取焦点~
lang14 2012-10-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
系统自带的屏幕键盘没这个问题
[/Quote]
这个不好用,自己想写一个
lgd_hit 2012-10-09
  • 打赏
  • 举报
回复
锁定前置窗口,调用这个API LockSetForegroundWindow,具体如下:

void CGlobal::LockSetForegroundWindow(UINT uLockCode)
{
typedef BOOL (WINAPI *MYFUNC)(UINT uLockCode);

HMODULE hFuncInst = LoadLibrary(_T("User32.DLL"));

MYFUNC LockWnd;
LockWnd = (MYFUNC)::GetProcAddress(hFuncInst, "LockSetForegroundWindow");
LockWnd(uLockCode);

return ;
}
vc_qing 2012-10-09
  • 打赏
  • 举报
回复
系统自带的屏幕键盘没这个问题

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧