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

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
popopo(^^)

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

#1 投稿記事 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始めたばかりでよく分からないのですが・・・・
ゲスト

#2 投稿記事 by ゲスト »

bufに正しい文字が記録しされているか確認してください。

試していませんが、下記でどうでしょう?
イグトランス
記事: 899
登録日時: 2005年5月31日(火) 17:59
お住まい: 東京都
連絡する:

#3 投稿記事 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
Keroro_ppp32.dll
記事: 1
登録日時: 2008年3月02日(日) 14:22
お住まい: 太陽系第三惑星地球星日本国奈良県
連絡する:

ありがとうございます

#4 投稿記事 by Keroro_ppp32.dll »

こんな質問に答えていただき、ありがとうございます。
早速試してみます。
返信する