全角/半角解決方案

一.控件輸入法全角/半角解決方案
  直接把控件的imemode = imdemode.kankanhalf,強制轉化成半角就OK。

  二.窗體輸入法全角/半角解決方案
  using   System;  
  using   System.Collections.Generic;  
  using   System.ComponentModel;  
  using   System.Data;  
  using   System.Drawing;  
  using   System.Text;  
  using   System.Windows.Forms;  
  using   System.Runtime.InteropServices;  
   
  namespace   Lqjt  
  {  
          public   partial   class   ImeForm   :   Form  
          {  
                  public   ImeForm()  
                  {  
                          InitializeComponent();  
                  }  
                  //聲明一些API函數  
                  [DllImport("imm32.dll")]  
                  public   static   extern   IntPtr   ImmGetContext(IntPtr   hwnd);  
                  [DllImport("imm32.dll")]  
                  public   static   extern   bool   ImmGetOpenStatus(IntPtr   himc);  
                  [DllImport("imm32.dll")]  
                  public   static   extern   bool   ImmSetOpenStatus(IntPtr   himc,   bool   b);  
                  [DllImport("imm32.dll")]  
                  public   static   extern   bool   ImmGetConversionStatus(IntPtr   himc,   ref   int   lpdw,   ref   int   lpdw2);  
                  [DllImport("imm32.dll")]  
                  public   static   extern   int   ImmSimulateHotKey(IntPtr   hwnd,   int   lngHotkey);  
                  private   const   int   IME_CMODE_FULLSHAPE   =   0x8;  
                  private   const   int   IME_CHOTKEY_SHAPE_TOGGLE   =   0x11;  
                  protected   override   void   OnActivated(EventArgs   e)  
                  {  
                          base.OnActivated(e);  
                          IntPtr   HIme   =   ImmGetContext(this.Handle);  
                          if   (ImmGetOpenStatus(HIme))     //如果輸入法處於打開狀態  
                          {  
                                  int   iMode   =   0;  
                                  int   iSentence   =   0;  
                                  bool   bSuccess   =   ImmGetConversionStatus(HIme,   ref   iMode,   ref   iSentence);     //檢索輸入法信息  
                                  if   (bSuccess)  
                                  {  
                                          if   ((iMode   &   IME_CMODE_FULLSHAPE)   >   0)       //如果是全角  
                                                  ImmSimulateHotKey(this.Handle,   IME_CHOTKEY_SHAPE_TOGGLE);     //轉換成半角  
                                  }  
   
                          }  
                  }  
          }//form  
  } 

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章