まずコマンドボタンが押されたらClickイベントが発生します。
つまりこれからのことはClickイベントのハンドラ内に書けばよいということです。
(詳しくはWin32プログラミング講座などを見てください)
次に文字数を数えたいエディットボックスのウィンドウハンドルが必要です。
ちなみにエディットボックスのIDと親のウィンドウハンドルを知っているのであれば
GetDlgItem(親のウィンドウハンドル, エディットボックスのID)と書けばエディットボックスのウィンドウハンドルが分かります。
(ヘルプには「ダイアログボックスのウィンドウハンドル」と書いてありますが,どんなウィンドウでも平気です)
それが無理なら場合によって色々と方法があるので,また聞いてください。
そうして得たウィンドウハンドルを引き数にしてGetWindowTextLength関数を呼べば文字数(バイト数)が分かります。
あとはこれをエディットボックスに表示させます。
それにはSetDlgItemTextと言いたいところですが,GetWindowTextLengthで得たものは数値であり文字列ではありませんからそのままでは使えません。
Str$などで文字列に変換する方法もありますが,ここでは数値のためのSetDlgItemInt関数を使います。
コード: 全て選択
' TODO: この位置にグローバルな変数、構造体、定数、関数を定義します。
Declare Function SetDlgItemInt Lib "user32.dll" (hDlg As HWND, nIDDlgItem As Long, uValue As DWord, bSinged As Long) As Long
これを書かないとコンパイルできません
コード: 全て選択
Sub MainWnd_CommandButton1_Click()
Dim hwndEdit As HWND
hwndEdit = GetDlgItem(...)
Dim TextLength As Long
TextLength = GetWindowTextLength(hwndEdit)
SetDlgItemInt(hMainWnd, EditBox1, TextLength, TRUE)
End Sub
IDや関数名は違うでしょうから適宜修正してください。