エディットボックスの入力可能最大バイト数を取得          <TOP>


SendMessage ウィンドウにメッセージを送信
EM_GETLIMITTEXT(&HD5) エディットボックスの入力可能最大バイト数を取得

EM_LIMITTEXT(&HC5) エディットコントロール内のテキストの文字数を制限

 

 

'================================================================
'= エディットボックスの入力可能最大バイト数を取得
'=    (EM_GETLIMITTEXT.bas)
'================================================================
#include "Windows.bi"

' ウィンドウにメッセージを送信
Declare Function Api_SendMessage& Lib "user32" Alias "SendMessageA" (ByVal hWnd&, ByVal wMsg&, ByVal wParam&, lParam As Any)

#define EM_GETLIMITTEXT &HD5            'エディットボックスの入力可能最大バイト数を取得
#define EM_LIMITTEXT &HC5               'エディットコントロール内のテキストの文字数を制限する

Var Shared Edit1 As Object
Var Shared Text1 As Object
Var Shared Button1 As Object

Edit1.Attach GetDlgItem("Edit1") : Edit1.SetFontSize 14
Text1.Attach GetDlgItem("Text1") : Text1.SetFontSize 14
Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14

'================================================================
'=
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
    Var LimitText As Long
    Var GetLimitText As Long
    Var Ret As Long

    If Edit1.GetWindowText <> "" Then
        LimitText = Val(Edit1.GetWindowText)
        Ret = Api_SendMessage(Edit1.GethWnd, EM_LIMITTEXT, LimitText, ByVal CLng(0))
    End If

    Edit1.SetWindowText ""
    Edit1.SetWindowText String$(LimitText, "@")

    'テキストボックスに入力可能な最大バイト数を取得
    GetLimitText = Api_SendMessage(Edit1.GethWnd, EM_GETLIMITTEXT, 0, ByVal CLng(0))

    '結果を表示
    Text1.SetWindowText "最大" & Str$(GetLimitText) & "バイト"
End Sub

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