キャレットを破棄する <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