キャレットを破棄する          <TOP>


CreateCaret 独自のキャレットを作成する
DestroyCaret キャレットを破棄する
HideCaret キャレットを非表示にする
ShowCaret キャレットを表示する
 

 

'================================================================
'= キャレットを破棄する
'=    (DestroyCaret.bas)
'================================================================
#include "Windows.bi"

' 独自のキャレットを作成する
Declare Function Api_CreateCaret& Lib "user32" Alias "CreateCaret" (ByVal hWnd&, ByVal hBitmap&, ByVal nWidth&, ByVal nHeight&)

' キャレットを破棄する
Declare Function Api_DestroyCaret& Lib "user32" Alias "DestroyCaret" ()

' キャレットを非表示にする
Declare Function Api_HideCaret& Lib "user32" Alias "HideCaret" (ByVal hWnd&)

' キャレットを表示する
Declare Function Api_ShowCaret& Lib "user32" Alias "ShowCaret" (ByVal hWnd&)

Var Shared Edit1 As Object
Var Shared Edit2 As Object

Edit1.Attach GetDlgItem("Edit1") : Edit1.SetFontSize 14
Edit2.Attach GetDlgItem("Edit2") : Edit2.SetFontSize 14

'================================================================
'=
'================================================================
Declare Sub Edit2_SetFocus edecl ()
Sub Edit2_SetFocus()
    Var hCaret As Long
    Var CaretWidth As Long
    Var CaretHeight As Long
    Var Ret As Long

    'キャレット情報を指定
    hCaret = 0
    CaretWidth = 10
    CaretHeight = 15

    '独自のキャレットを作成
    Ret = Api_CreateCaret(Edit2.GethWnd, hCaret, CaretWidth, CaretHeight)

    '作成したキャレットを表示
    Ret = Api_ShowCaret(Edit2.GethWnd)
End Sub

'================================================================
'=
'================================================================
Declare Sub Edit2_KillFocus edecl ()
Sub Edit2_KillFocus()
    Var Ret As Long

    'キャレットを非表示
    Ret = Api_HideCaret(EDit2.GethWnd)
End Sub

'================================================================
'=
'================================================================
Declare Sub MainForm_QueryClose edecl ()
Sub MainForm_QueryClose()
    Var Ret As Long

    '作成したキャレットを破棄
    Ret = Api_DestroyCaret()
End Sub

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