IME設定ダイアログボックスの表示          <TOP>


IME設定ダイアログボックスを表示します。

GetKeyboardLayout キーボードレイアウトのハンドルを取得

ImmConfigureIME IMEの環境設定ダイアログを表示する関数

 

 

'================================================================
'= IMEの設定ダイアログボックスの表示
'=    (ImmConfigureIME.bas)
'================================================================
#include "Windows.bi"

' キーボードレイアウトのハンドルを取得
Declare Function Api_GetKeyboardLayout& Lib "user32" Alias "GetKeyboardLayout" (ByVal dwLayout&)

' IMEの環境設定ダイアログを表示する関数
Declare Function Api_ImmConfigureIME& Lib "imm32" Alias "ImmConfigureIMEA" (ByVal hKL&, ByVal hWnd&, ByVal dwMode&, lpdata As Any)

#define IME_CONFIG_GENERAL 1                 '基本設定ダイアログボックスを表示
#define IME_CONFIG_REGISTERWORD 2            '単語登録ダイアログボックスを表示
#define IME_CONFIG_SELECTDICTIONARY 3        '辞書選択ダイアログボックスを表示

' 単語登録の読みと単語を定義する構造体
Type tagREGISTERWORD
    lpReading As String * 255
    lpWord    As String * 255
End Type

Var Shared Radio(2) As Object
Var Shared Button1 As Object

For i = 0 To 2
    Radio(i).Attach GetDlgItem("Radio" & Trim$(Str$(i+1)))
    Radio(i).SetFontSize 14
Next
Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14

'================================================================
'=
'================================================================
Declare Function Index bdecl () As Integer
function Index()
    Index = Val(Mid$(GetDlgRadioSelect("Radio1"), 6))
End Function

'================================================================
'=
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
    Var KeyHandle As Long
    Var DialogBoxType As Long
    Var RegWord As tagREGISTERWORD
    Var Ret As Long

    'カレントスレッドのキーボードレイアウトのハンドルを取得
    KeyHandle = Api_GetKeyboardLayout(0)

    '表示するIMEの環境設定ダイアログのタイプを設定
    Select Case Index
        Case 1
            DialogBoxType = IME_CONFIG_GENERAL
        Case 2
            DialogBoxType = IME_CONFIG_REGISTERWORD
        Case 3
            DialogBoxType = IME_CONFIG_SELECTDICTIONARY
    End Select

    'IME設定ダイアログを表示
    Ret = Api_ImmConfigureIME(KeyHandle, GethWnd, DialogBoxType, RegWord)
End Sub

'================================================================
'=
'================================================================
While 1
    WaitEvent
Wend
Stop
End