by Toshi » 2006年1月19日(木) 20:03
これは文字列を数値とみなして、それらを加算した値を文字列として表示するということでしょうか?
この場合 buf と buff は、それぞれがポインタとみなされますので、
SetWindowText にはそれらのポインタ同士を加算した値がポインタとして渡されてしまいます。
意図した動作にするには、まず GetDlgItemInt でそれぞれの文字列を
数値として取得し、それらを加算した値を文字列にしてから
SetWindowText へ渡します。
[ここをクリックすると内容が表示されます] [ここをクリックすると非表示にします]
コード: 全て選択
'定義
Declare Function GetDlgItemInt Lib "user32.dll" (hDlg As HWND,nIDDlgItem As Long,lpTranslated As DWordPtr,bSinged As Long) As Long
'Long 型
Dim buf As Long
Dim buff As Long
buf=GetDlgItemInt(hMainWnd,EditBox1,NULL,TRUE)
buff=GetDlgItemInt(hMainWnd,EditBox2,NULL,TRUE)
SetWindowText(GetDlgItem(hMainWnd,Static1),Str$(buf+buff))
これは文字列を数値とみなして、それらを加算した値を文字列として表示するということでしょうか?
この場合 buf と buff は、それぞれがポインタとみなされますので、
SetWindowText にはそれらのポインタ同士を加算した値がポインタとして渡されてしまいます。
意図した動作にするには、まず GetDlgItemInt でそれぞれの文字列を
数値として取得し、それらを加算した値を文字列にしてから
SetWindowText へ渡します。
[hide]
[code]
'定義
Declare Function GetDlgItemInt Lib "user32.dll" (hDlg As HWND,nIDDlgItem As Long,lpTranslated As DWordPtr,bSinged As Long) As Long
'Long 型
Dim buf As Long
Dim buff As Long
buf=GetDlgItemInt(hMainWnd,EditBox1,NULL,TRUE)
buff=GetDlgItemInt(hMainWnd,EditBox2,NULL,TRUE)
SetWindowText(GetDlgItem(hMainWnd,Static1),Str$(buf+buff))
[/code]
[/hide]