入力する文字数の制限 <TOP>
入力する文字数を制限します。F-BASICのSETLIMITTEXTと同じです。
SendMessage ウィンドウにメッセージを送信
CB_LIMITTEXT(&H141)
コンボボックスのエディットコントロール内のテキストの文字数を制限する
EM_LIMITTEXT(&HC5)
エディットコントロール内のテキストの文字数を制限する
リミットに制限する文字数を入力し「制限」ボタンをクリック後、EditBoxまたはComboBoxに文字を入力しています。「解除」ボタンでデフォルトに設定されます。
5文字に制限例
15文字に制限例
'================================================================ '= 入力する文字数の制限 '= (LIMITTEXT.bas) '================================================================ #include "Windows.bi" #define CB_LIMITTEXT &H141 'コンボボックスのエディットコントロール内のテキストの文字数を制限する #define EM_LIMITTEXT &HC5 'エディットコントロール内のテキストの文字数を制限する ' ウィンドウにメッセージを送信。この関数は、指定したウィンドウのウィンドウプロシージャが処理を終了するまで制御を返さない Declare Function Api_SendMessage& Lib "user32" Alias "SendMessageA" (ByVal hWnd&, ByVal wMsg&, ByVal wParam&, lParam As Any) ' ウインドウのタイトルを変更 Declare Function Api_SetWindowText& Lib "user32" Alias "SetWindowTextA" (ByVal hWnd&, ByVal lpString$) Var Shared Text1 As Object Var Shared Combo1 As Object Var Shared Edit(1) As Object Var Shared Button(1) As Object Text1.Attach GetDlgItem("Text1") : Text1.SetFontSize 14 Combo1.Attach GetDlgItem("Combo1") : Combo1.SetFontSize 14 For i = 0 To 1 Edit(i).Attach GetDlgItem("Edit" & Trim$(Str$(i + 1))) : Edit(i).SetFontSize 14 Button(i).Attach GetDlgItem("Button" & Trim$(Str$(i + 1))) : Button(i).SetFontSize 14 Next i '================================================================ '= '================================================================ Declare Sub Button1_on edecl () Sub Button1_on() Var maxTxtLen As Long Var Ret As Long 'リミット文字数取得 maxTxtLen = CLng(val(Edit(1).GetWindowText)) 'テキストクリア Ret = Api_SetWindowText(Edit(0).GethWnd, "") Ret = Api_SetWindowText(Combo1.GethWnd, "") 'リミット設定 Ret = Api_SendMessage(Edit(0).GethWnd, EM_LIMITTEXT, maxTxtLen, ByVal 0) Ret = Api_SendMessage(Combo1.GethWnd, CB_LIMITTEXT, maxTxtLen, ByVal 0) End Sub '================================================================ '= '================================================================ Declare Sub Button2_on edecl () Sub Button2_on() Var Ret As Long 'テキストクリア Ret = Api_SetWindowText(Edit(0).GethWnd, "") Ret = Api_SetWindowText(Edit(1).GethWnd, "") Ret = Api_SetWindowText(Combo1.GethWnd, "") 'リセット Ret = Api_SendMessage(Edit(0).GethWnd, EM_LIMITTEXT, 0, ByVal 0) Ret = Api_SendMessage(Combo1.GethWnd, CB_LIMITTEXT, 0, ByVal 0) End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End