ページ 11

EDITコントロールの文字列を数値に変換

Posted: 2008年3月26日(水) 13:37
by popopo(^^)
はじめまして。ABを一ヶ月前から始めたpopopoと言う者です。
RADツールでウインドウに配置した一行エディットコントロール
に入力されている文字列を、数値に変換
(たとえば、文字列として「12345」と入力されていれば
「12345」という数値に変換)
したいのですが。
今のコードは

コード: 全て選択


Dim buf As String,num As Long
buf=ZeroString(GetWindowTextLength(GetDlgItem(hNumIptDlg,NumIptBox) ) )
GetWindowText(GetDlgItem(hNumIptDlg,NumIptBox),buf,GetWindowTextLength(GetDlgItem(hNumIptDlg,NumIptBox) ))
num=Int(Val(buf))
となっているのですが、ちゃんと変換されません。
AB始めたばかりでよく分からないのですが・・・・

Posted: 2008年3月26日(水) 14:40
by ゲスト
bufに正しい文字が記録しされているか確認してください。

試していませんが、下記でどうでしょう?

Posted: 2008年3月26日(水) 23:21
by イグトランス
これにはGetDlgItemInt関数が簡単です。

コード: 全て選択

Dim num As Long 
num = GetDlgItemInt(hNumIptDlg, NumIptBox, 0, TRUE)
hNumIptDlg, NumIptBoxはGetDlgItemと同じ2つを指定します。

これを使うには,「' TODO: この位置にグローバルな変数、構造体、定数、関数を定義します。」の下にこのDeclareをコピーして貼り付けてください。

コード: 全て選択

Declare Function GetDlgItemInt Lib "user32" (ByVal hDlg As HWND,ByVal nIDDlgItem As Long,ByVal lpTranslated As *BOOL,ByVal bSigned As BOOL) As DWord

ありがとうございます

Posted: 2008年3月27日(木) 11:02
by Keroro_ppp32.dll
こんな質問に答えていただき、ありがとうございます。
早速試してみます。