by 卓漏 » 2006年7月17日(月) 22:30
すでに「MainWnd2」が表示されているときを想定して作りました。
「MainWnd」の「EditBox1」に文字が入力されると、
リアルタイムに「MainWnd2」の「EditBox1」に文字数が表示されるようになっています。
[ここをクリックすると内容が表示されます] [ここをクリックすると非表示にします]コード: 全て選択
Sub MainWnd_EditBox1_Change()
Dim Str As String
Dim S As String
Dim Length As Long
Length = GetWindowTextLength(GetDlgItem(hMainWnd, EditBox1))
Str$ = ZeroString(Length)
GetDlgItemText(hMainWnd, EditBox1, Str, Length)
'文字数取得
S = Str$(LenStr(Str))
'文字数を表示する
SetDlgItemText(hMainWnd2, EditBox1, StrPtr(S))
End Sub
Function LenStr(Str As String) As Long
'* 文字数を返します *
Dim Str2$ As String, Num As Long
'Unicodeに変換後、使用するバイト数の取得
Str2$ = ZeroString(MultiByteToWideChar(0, 0, Str, Len(Str), 0, 0) * 2)
'Unicodeに変換
Num = MultiByteToWideChar(0, 0, Str, Len(Str), StrPtr(Str2$), Len(Str2$))
LenStr = Num '文字数を返す
End Function
すでに「MainWnd2」が表示されているときを想定して作りました。
「MainWnd」の「EditBox1」に文字が入力されると、
リアルタイムに「MainWnd2」の「EditBox1」に文字数が表示されるようになっています。
[hide][code]
Sub MainWnd_EditBox1_Change()
Dim Str As String
Dim S As String
Dim Length As Long
Length = GetWindowTextLength(GetDlgItem(hMainWnd, EditBox1))
Str$ = ZeroString(Length)
GetDlgItemText(hMainWnd, EditBox1, Str, Length)
'文字数取得
S = Str$(LenStr(Str))
'文字数を表示する
SetDlgItemText(hMainWnd2, EditBox1, StrPtr(S))
End Sub
Function LenStr(Str As String) As Long
'* 文字数を返します *
Dim Str2$ As String, Num As Long
'Unicodeに変換後、使用するバイト数の取得
Str2$ = ZeroString(MultiByteToWideChar(0, 0, Str, Len(Str), 0, 0) * 2)
'Unicodeに変換
Num = MultiByteToWideChar(0, 0, Str, Len(Str), StrPtr(Str2$), Len(Str2$))
LenStr = Num '文字数を返す
End Function
[/code][/hide]