zoukankan      html  css  js  c++  java
  • Windows Mobile 中输入法改变事件的捕获

    在Windows Mobile开发中遇到一个问题,就是在用户改变输入法时动态改变窗体的高度,而输入法控件InputPanel中没有输入法改变的事件,因些要对输入法改变的事件进行捕获。在网上搜索了到了相关的代码,但是有一些问题,作了一些修改后可以正常使用。基本原理是对InputPanel进行扩展,通过消息捕获添加输入法改变的事件InputMethodChanged。代码如下:

     /// <summary> 
        
    /// InputPanel扩展类。 
        
    /// LastUpdate:2007-12-26 NSnaiL 
        
    /// </summary> 
        public class InputPanelEx : InputPanel
        {
            
    #region Fields

            
    /// <summary> 
            
    /// 当输入法切换时发生。 
            
    /// </summary> 
            public event EventHandler InputMethodChanged;
            
    private MsgHook Msg;
            
    internal class MsgHook : MessageWindow
            {
                
    #region Fields

                
    private const int WM_SETTINGCHANGE = 0x001A;
                
    private InputPanelEx BaseObject;

                
    #endregion

                
    #region Methods

                
    public MsgHook(InputPanelEx baseObj)
                {
                    BaseObject 
    = baseObj;
                }

                
    protected override void WndProc(ref Message m)
                {
                    
    if (m.Msg == WM_SETTINGCHANGE)
                        BaseObject.InputMethodChanged(
    this, EventArgs.Empty);
                    
    base.WndProc(ref m);
                }

                
    #endregion
            }

            
    #endregion

            
    #region Methods

            
    public InputPanelEx()
            {
                Msg 
    = new MsgHook(this);
            }

            
    public new void Dispose()
            {
                Msg.Dispose();
                
    base.Dispose();
            }

            
    #endregion
        }

    需要注意的是,在退出窗体时一定要调用InputPanelEx的Dispose()方法,否则会出问题。

  • 相关阅读:
    java配置文件读取
    简易表单验证
    Enter键提交表单
    background-attachment:fixed应用
    随机生成密钥
    javascript/jquery判断是否为undefined或是null!
    jQuery获取和设置disabled属性、背景图片路径
    $(function(){})里面不能声明定义函数
    CSS浏览器兼容性----Hack
    数组快速排序
  • 原文地址:https://www.cnblogs.com/glacierh/p/1374255.html
Copyright © 2011-2022 走看看