キャレット幅の取得と設定 <TOP>
SystemParametersInfo
システム全体に関するパラメータを取得・設定
SPI_GETCARETWIDTH(&H2006) キャレット幅を取得
SPI_SETCARETWIDTH(&H2007) キャレット幅を設定
SPIF_SENDWININICHANGE(&H2) 全てのアプリケーションに通知して更新
SPIF_UPDATEINIFILE(&H1) ユーザープロファイルの更新を指定
'================================================================
'= キャレット幅の取得と設定
'= (CaretWidth.bas)
'================================================================
#include "Windows.bi"
' システム全体に関するパラメータを取得・設定
Declare Function Api_SystemParametersInfo& Lib "user32" Alias "SystemParametersInfoA" (ByVal uiAction&, ByVal uiParam&, pvParam As Any, ByVal fWinIni&)
#define SPI_GETCARETWIDTH &H2006 'キャレット幅を取得
#define SPI_SETCARETWIDTH &H2007 'キャレット幅を設定
#define SPIF_SENDWININICHANGE &H2 '全てのアプリケーションに通知して更新
#define SPIF_UPDATEINIFILE &H1 'ユーザープロファイルの更新を指定
Var Shared Edit1 As Object
Var Shared Text1 As Object
Var Shared Button1 As Object
Var Shared Button2 As Object
Edit1.Attach GetDlgItem("Edit1") : Edit1.SetFontSize 14
Text1.Attach GetDlgItem("Text1") : Text1.SetFontSize 14
Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14
Button2.Attach GetDlgItem("Button2") : Button2.SetFontSize 14
Var Shared OldCaretWidth As Long
'================================================================
'=
'================================================================
Declare Sub MainForm_Start edecl ()
Sub MainForm_Start()
Var Ret As Long
Edit1.SetWindowText "F-Basic Programming Tips"
Ret = Api_SystemParametersInfo(SPI_GETCARETWIDTH, 0, OldCaretWidth, 0)
End Sub
'================================================================
'=
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
Var CaretWidth As Long
Var Ret As Long
'キャレットの幅を指定
CaretWidth = 10
'キャレットの幅を表示
Text1.SetWindowtext "Caret Width =" & Str$(CaretWidth) & " Pixel"
'キャレットの幅を設定
Ret = Api_SystemParametersInfo(SPI_SETCARETWIDTH, 0, ByVal CaretWidth, SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE)
Edit1.SetFocus
End Sub
'================================================================
'=
'================================================================
Declare Sub Button2_on edecl ()
Sub Button2_on()
Var Ret As Long
'キャレットの幅を表示
Text1.SetWindowtext "Caret Width =" & Str$(OldCaretWidth) & " Pixel"
'キャレットの幅を設定
Ret = Api_SystemParametersInfo(SPI_SETCARETWIDTH, 0, ByVal OldCaretWidth, SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE)
Edit1.SetFocus
End Sub
'================================================================
'=
'================================================================
Declare Sub MainForm_QueryClose edecl ()
Sub MainForm_QueryClose()
Button2_on
End Sub
'================================================================
'=
'================================================================
While 1
WaitEvent
Wend
Stop
End