效果参见win操作系统附件中自带的屏幕虚拟键盘,你在点击那个屏幕虚拟键盘的时候发现
那个键盘程序无论在点击前后始终都没有得到焦点,而后面输入键盘字符的窗口也始终没
有得到焦点。
想做出这种效果,尝试了N种方法都没有能够如愿,真不知道微软写那个虚拟键盘的家伙是
怎么做出这种效果来的。就像那个输入法工具栏一样,我点击了它,实际上的当前活动窗口的状态并不改变的。望大虾们指教啊、、、

解决方案 »

  1.   

    然后在WM_SETFOCUS消息中保存原来具有焦点的窗口句柄,处理完鼠标消息后将焦点设置回去。
      

  2.   

    可是我要的效果是点击后仍旧不active,而不是刚开始运行的时候就deactive。我使用过WM_SETFOCUS,然后将原窗口SetFocus()
    但是这种有个缺点,焦点会在2个applcation上来回闪动,视觉效果很差劲。
      

  3.   

    说说我的猜想
    不过这个猜想是没有依据,仅提供参考猜想A:
    输入栏是针对每个进程,比如进程A设置了微软拼音,进程B可以设置紫光。
    也就是说可能每个进程有个独立的输入栏,当进程窗口活动时,属于自己的输入栏就显示出来
    所以输入栏可能是用全局的钩子实现,当某个编辑框获得焦点时,输入栏自动SetParent将自己的父窗口设置成这个编辑框,也就是说输入栏的父窗口是自动切换的。猜想B:
    输入栏可能根本就不是窗口。
      

  4.   

    创建窗口的时候EXSTYLE指定WS_EX_NOACTIVATE风格,显示的时候用ShowWindow(SW_SHOWNA)