none
wpf TabTip(软键盘)弹出,怎样去掉键盘上的最大化按钮 RRS feed

  • 问题

  • 画面中做了一个按钮可以弹出和关闭软键盘 TabTip.exe

    但是当键盘最大化时,我自己的主窗体的高度变小了,整个画面压缩了。

    所以我想去掉软键盘上的最大化按钮,用API去掉的,但是为什么不好用呢??

    是不是 nStyle = nStyle & (~WS_MAXIMIZEBOX); 写法写错了??

    求帮助~!!谢谢!!

                    Process p = Process.GetProcessesByName("TabTip").FirstOrDefault();
                    IntPtr keyboardHandle = p.MainWindowHandle;
    
                    UInt32 WS_MINIMIZEBOX = 0x00020000; // 窗口有最小化按钮  
                    UInt32 WS_MAXIMIZEBOX = 0x00010000;
    
                    UInt32 nStyle = GetWindowLong(keyboardHandle, GWL_STYLE);
                    //nStyle =nStyle- WS_MINIMIZEBOX;
                    nStyle = nStyle & (~WS_MAXIMIZEBOX);
    
                    SetWindowLong(keyboardHandle, GWL_STYLE, nStyle);
    

    2016年8月9日 6:16

答案

  • 您好 Yuan Lu,

    >>"所以我想去掉软键盘上的最大化按钮,用API去掉的,但是为什么不好用呢??"

    我打开软键盘看了下,那个按钮并不是最大化按钮,所以您的代码不会起作用。那个按钮的名字叫"Dock". 很抱歉,现在还没有API可以隐藏这个按钮。 如果要修改软键盘的状态,比如是否最大化(Dock)到窗口的最下面。我们可以通过修改注册表的值来完成。该注册表路径为:

    HKEY_CURRENT_USER\Software\Microsoft\TabletTip\1.7\EdgeTargetDockedState

    如果EdgeTargetDockedState值为0则表示处于非Dock状态。值为1的时候表示软键盘是Dock状态。

    Li Wang


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    • 已建议为答案 DotNet Wang 2016年10月7日 2:04
    • 已标记为答案 Yuan Lu 2016年10月18日 11:31
    2016年8月10日 4:41

全部回复

  • 您好 Yuan Lu,

    >>"所以我想去掉软键盘上的最大化按钮,用API去掉的,但是为什么不好用呢??"

    我打开软键盘看了下,那个按钮并不是最大化按钮,所以您的代码不会起作用。那个按钮的名字叫"Dock". 很抱歉,现在还没有API可以隐藏这个按钮。 如果要修改软键盘的状态,比如是否最大化(Dock)到窗口的最下面。我们可以通过修改注册表的值来完成。该注册表路径为:

    HKEY_CURRENT_USER\Software\Microsoft\TabletTip\1.7\EdgeTargetDockedState

    如果EdgeTargetDockedState值为0则表示处于非Dock状态。值为1的时候表示软键盘是Dock状态。

    Li Wang


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    • 已建议为答案 DotNet Wang 2016年10月7日 2:04
    • 已标记为答案 Yuan Lu 2016年10月18日 11:31
    2016年8月10日 4:41
  • 谢谢您的帮助。

    因为我们在做的系统是全屏显示,所以在将KeyBoard最大化后,Windows窗口的高度变小。

    而且程序在杀死KeyBoard的进程时,窗口不会回复正常大小。所以想去掉最大化按钮。

    这个问题已经解决了,但是还是很感谢您的帮助!!^_^

    2016年10月18日 11:35