by 雷電 » 2006年8月31日(木) 19:02
関数の説明
SelUnite関数:
二つのアイテムの文字列を取得して、結合させる関数。
パラメータを少なくするのにてこずった・・・
パラメータ:
nID1・・・結合させる文字列のあるアイテムのハンドル
nID2・・・結合する文字列のあるアイテムのハンドル
AfterUnion・・・結合後の文字列を格納する文字列変数
定義は
こちら [ここをクリックすると内容が表示されます] [ここをクリックすると非表示にします]コード: 全て選択
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関数を使わないようにしたバージョン
※これは上記の関数と一緒に定義してください。
使用例 [ここをクリックすると内容が表示されます] [ここをクリックすると非表示にします]コード: 全て選択
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
追記:この関数は、ActiveBasic Ver4.24で動作確認しています。
関数の説明
SelUnite関数:
二つのアイテムの文字列を取得して、結合させる関数。
パラメータを少なくするのにてこずった・・・
パラメータ:
[b]nID1[/b]・・・結合させる文字列のあるアイテムのハンドル
[b]nID2[/b]・・・結合する文字列のあるアイテムのハンドル
[b]AfterUnion[/b]・・・結合後の文字列を格納する文字列変数
定義は
[hide=こちら][code]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[/code][/hide]
パラメータの数は多くなったが、GetDlgItem関数を使わないようにしたバージョン
[color=red]※これは上記の関数と一緒に定義してください。[/color]
[hide=GetDlgItemを使わないバージョンの定義][code]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[/code][/hide]
[hide=使用例][code]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[/code][/hide]
追記:この関数は、ActiveBasic Ver4.24で動作確認しています。