取得、結合を行う関数
Posted: 2006年8月31日(木) 19:02
関数の説明
SelUnite関数:
二つのアイテムの文字列を取得して、結合させる関数。
パラメータを少なくするのにてこずった・・・
パラメータ:
nID1・・・結合させる文字列のあるアイテムのハンドル
nID2・・・結合する文字列のあるアイテムのハンドル
AfterUnion・・・結合後の文字列を格納する文字列変数
定義は
※これは上記の関数と一緒に定義してください。
SelUnite関数:
二つのアイテムの文字列を取得して、結合させる関数。
パラメータを少なくするのにてこずった・・・
パラメータ:
nID1・・・結合させる文字列のあるアイテムのハンドル
nID2・・・結合する文字列のあるアイテムのハンドル
AfterUnion・・・結合後の文字列を格納する文字列変数
定義は
こちら [ここをクリックすると内容が表示されます]
パラメータの数は多くなったが、GetDlgItem関数を使わないようにしたバージョンコード: 全て選択
Function SelUnite(ByVal nID1 As HWND, ByVal nID2 As HWND, ByRef AfterUnion As String) As Long
Dim ByteLen1 As DWord
Dim ByteLen2 As DWord
Dim buffer1 As BytePtr
Dim buffer2 As BytePtr
Dim Data As String
ByteLen1=GetWindowTextLength(nID1)
ByteLen2=GetWindowTextLength(nID2)
buffer1=malloc(ByteLen1+1)
buffer2=malloc(ByteLen2+1)
GetWindowText(nID1,buffer1,ByteLen1+1)
GetWindowText(nID2,buffer2,ByteLen2+1)
Data=lstrcat(buffer1,buffer2)
free(buffer1)
free(buffer2)
If Data="" Then
SelUnite=0
Exit Function
End If
SelUnite=1
AfterUnion=Data
End Function
※これは上記の関数と一緒に定義してください。
GetDlgItemを使わないバージョンの定義 [ここをクリックすると内容が表示されます]
コード: 全て選択
Function StringUnion(ByVal hDlg1 As DWord, ByVal nID1 As Long, ByVal hDlg2 As DWord, ByVal nID2 As Long, ByRef Union As String) As Long
StringUnion=SelUnite(GetDlgItem(hDlg1,nID1),GetDlgItem(hDlg2,nID2),Union) As Long
End Function
使用例 [ここをクリックすると内容が表示されます]
追記:この関数は、ActiveBasic Ver4.24で動作確認しています。コード: 全て選択
Sub MainWnd_CommandButton1_Click()
Dim hEdit1 As HWND
Dim hEdit2 As HWND
Dim StringData As String
hEdit1=GetDlgItem(hMainWnd,EditBox1)
hEdit2=GetDlgItem(hMainWnd,EditBox2)
SelUnite(hEdit1,hEdit2,StringData)
MessageBox(hMainWnd,StringData,"結果",0)
End Sub