キャレットを作成する <TOP>
独自のキャレットを作成します。
CreateCaret独自のキャレットを作成する
ShowCaret キャレットを表示する
GetCaretBlinkTime キャレットのブリンク時間を取得する
キャレットサイズを幅10、高さ30に設定しています。
VBで実行したもの。鉛筆のBitmapを作成(色を反転しています)しキャレットとしています。
※VBでのコード
Sub Text1_GotFocus()
hWnd& = GetFocus&()
hBitmap& = Picture1.Picture
Call CreateCaret(hWnd&, hBitmap&, 0, 0)
X& = ShowCaret&(h&)
End Sub
参照
'================================================================ '= キャレットを作成する
'= (Createcaret.bas) '================================================================ #include "Windows.bi" ' 独自のキャレットを作成する Declare Function Api_CreateCaret& Lib "user32" Alias "CreateCaret" (ByVal hWnd&, ByVal hBitmap&, ByVal nWidth&, ByVal nHeight&) ' キャレットを表示する Declare Function Api_ShowCaret& Lib "user32" Alias "ShowCaret" (ByVal hWnd&) ' キャレットのブリンク時間を取得する Declare Function Api_GetCaretBlinkTime& Lib "user32" Alias "GetCaretBlinkTime" () Var Shared Edit1 As Object Var Shared Text1 As Object Edit1.Attach GetDlgItem("Edit1") : Edit1.SetFontSize 14 Text1.Attach GetDlgItem("Text1") : Text1.SetFontSize 14 '================================================================ '= '================================================================ Declare Sub MainForm_Start edecl () Sub MainFOrm_Start() Text1.SetWindowText "ブリンクタイム:" & Trim$(Str$(Api_GetCaretBlinkTime)) & "ミリ秒" Edit1.SetFocus End Sub '================================================================ '= '================================================================ Declare Sub Edit1_SetFocus edecl () Sub Edit1_SetFocus () Var hWnd As Long Var hImage As Long Var nWidth As Long Var nHeight As Long Var Ret As Long hWnd = Edit1.GethWnd nWidth = 10 nHeight = 30 Ret = Api_CreateCaret(hWnd, 0, nWidth, nHeight) Ret = Api_ShowCaret(hWnd) End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End