IME初期方式を取得 <TOP>
IME初期方式を取得します。
ImmGetContext ウィンドウに関連付けされた入力コンテキストを取得
ImmReleaseContext ウィンドウに関連付けされた入力コンテキストを開放
ImmGetConversionStatus IME初期方式を取得する関数
'================================================================ '= IME初期方式を取得 '= (ImmGetConversionStatus.bas) '================================================================ #include "Windows.bi" ' ウィンドウに関連付けされた入力コンテキストを取得 Declare Function Api_ImmGetContext& Lib "imm32" Alias "ImmGetContext" (ByVal hWnd&) ' ウィンドウに関連付けされた入力コンテキストを開放 Declare Function Api_ImmReleaseContext& Lib "imm32" Alias "ImmReleaseContext" (ByVal hWnd&, ByVal hIMC&) ' IME初期方式を取得 Declare Function Api_ImmGetConversionStatus& Lib "imm32" Alias "ImmGetConversionStatus" (ByVal hIMC&, fdwConversion&, fdwSentence&) #define IME_CMODE_ALPHANUMERIC &H0 '英数字モード #define IME_CMODE_CHARCODE &H20 '文字コード入力 #define IME_CMODE_CHINESE &H1 'NATIVEモード(設定しない場合ALPHANUMERICモード) #define IME_CMODE_EUDC &H200 'EUDC変換モード #define IME_CMODE_FULLSHAPE &H8 '全角モード(設定しないとき、半角モード) #define IME_CMODE_HANGEUL &H1 'NATIVEモード(設定しない場合ALPHANUMERICモード) #define IME_CMODE_HANJACONVERT &H40 'HANJA変換モード #define IME_CMODE_JAPANESE &H1 'NATIVEモード(設定しない場合ALPHANUMERICモード) #define IME_CMODE_KATAKANA &H2 'カタカナモード(設定しない場合ひらがなモード) #define IME_CMODE_LANGUAGE &H3 ' #define IME_CMODE_NATIVE &H1 'NATIVEモード(設定しない場合ALPHANUMERICモード) #define IME_CMODE_NOCONVERSION &H100 '変換しない(設定しないとき、変換する) #define IME_CMODE_ROMAN &H10 'ローマ字変換モード #define IME_CMODE_SOFTKBD &H80 'ソフトキーボードモード #define IME_CMODE_SYMBOL &H400 'シンボルモード Var Shared Text(3) As Object Var Shared Edit1 As Object Var Shared Button1 As Object For i = 0 To 3 Text(i).Attach GetDlgItem("Text" & Trim$(Str$(i + 1))) : Text(i).SetFontSize 14 Next Edit1.Attach GetDlgItem("Edit1") : Edit1.SetFontSize 14 Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14 '================================================================ '= '================================================================ Declare Sub Button1_on edecl () Sub Button1_on() Var hWnd As Long Var hIMC As Long Var IMEConversion As Long Var IMESentence As Long Var Ret As Long 'ウィンドウに関連付けされた入力ハンドル・コンテキストを取得 hWnd = Edit1.GethWnd hIMC = Api_ImmGetContext(hWnd) '入力コンテキストを取得できたときは If hIMC <> 0 Then 'IME初期方式の設定を取得 Ret = Api_ImmGetConversionStatus(hIMC, IMEConversion, IMESentence) 'IME初期入力方式の設定を表示 Select Case IMEConversion And IME_CMODE_ROMAN Case IME_CMODE_ROMAN Text(1).SetWindowText "ローマ字入力" Case Else Text(1).SetWindowText "かな入力" End Select 'IME初期入力モードの設定を表示 Select Case IMEConversion And (IME_CMODE_JAPANESE Or IME_CMODE_KATAKANA Or IME_CMODE_LANGUAGE Or IME_CMODE_FULLSHAPE) Case IME_CMODE_FULLSHAPE Or IME_CMODE_JAPANESE Text(3).SetWindowText "ひらがな" Case IME_CMODE_FULLSHAPE Or IME_CMODE_LANGUAGE Text(3).SetWindowText "全角カタカナ" Case IME_CMODE_LANGUAGE Text(3).SetWindowText "半角カタカナ" Case IME_CMODE_FULLSHAPE Text(3).SetWindowText "全角英数" Case IME_CMODE_ALPHANUMERIC Text(3).SetWindowText "半角英数" Case Else Text(3).SetWindowText "不明" End Select '入力コンテキストを開放 Ret = Api_ImmReleaseContext(hWnd, hIMC) End If End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End