IMEステータスウィンドウの位置を設定          <TOP>


IMEステータスウィンドウ(ATOKでは、ATOKパレット)の位置を設定します。

ImmGetContext 指定したウィンドウの入力コンテキストのハンドルを取得

ImmSetStatusWindowPos ステータスウィンドウの位置を設定

 

 

'================================================================
'= IMEステータスウィンドウの位置を設定
'=    (ImmSetStatusWindowPos.bas)
'================================================================
#include "Windows.bi"

Type POINTAPI
    X As Long
    Y As Long
End Type

' 指定したウィンドウの入力コンテキストのハンドルを取得
Declare Function Api_ImmGetContext& Lib "imm32" Alias "ImmGetContext"(ByVal hWnd&)

' ステータスウィンドウの位置を設定
Declare Function Api_ImmSetStatusWindowPos& Lib "imm32" Alias "ImmSetStatusWindowPos" (ByVal himc&, lpPoint As POINTAPI)

Var Shared Edit(1) As Object
Var Shared Text(1) As Object
Var Shared Button1 As Object

For i = 0 to 1
    Text(i).Attach GetDlgItem("Text" & Trim$(Str$(i + 1))) : Text(i).SetFontSize 14
    Edit(i).Attach GetDlgItem("Edit" & Trim$(Str$(i + 1))) : Edit(i).SetFontSize 14
Next
Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14

'================================================================
'=
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
    Var hWnd As Long
    Var pa As POINTAPI
    Var Ret As Long

    hWnd = Api_ImmGetContext(GethWnd)
    pa.X = Val(Edit(0).GetWindowText)
    pa.Y = Val(Edit(1).GetWindowText)

    Ret = Api_ImmSetStatusWindowPos(hWnd, pa)
    SetFocus
End Sub

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