コード: 全て選択
Function ComboBox_GetCurSel(ByVal hCombo As HWND) As Long
ComboBox_GetCurSel=SendMessage(hCombo,CB_GETCURSEL,0,0) As Long
End Function
Function ComboBox_GetLBTextLen(ByVal hCombo As HWND,ByVal nIndex As Long) As Long
ComboBox_GetLBTextLen=SendMessage(hCombo,CB_GETLBTEXTLEN,nIndex,0) As Long
End Function
Function ComboBox_GetLBText(ByVal hCombo As HWND,ByVal nIndex As Long,ByVal lpStringBuf As LPSTR) As Long
ComboBox_GetLBText=SendMessage(hCombo,CB_GETLBTEXT,nIndex,lpStringBuf As LPARAM) As Long
End Function
Sub MainWnd_CBN_SELCHANGE()
Dim hCombo As HWND
Dim lpStr As LPSTR
Dim nIndex As Long
hCombo=GetDlgItem(hMainWnd,ComboBox1)
nIndex=ComboBox_GetCurSel(hCombo)
If nIndex<>CB_ERR Then
lpStr=malloc(ComboBox_GetLBTextLen(hCombo,nIndex)+1)
ComboBox_GetLBText(hCombo,nIndex,lpStr)
Select Case 0
Case lstrcmp("test",lpStr)
SendMessage(List,LB_RESETCONTENT,0,0)
SendMessage(List,LB_ADDSTRING,0,"test")
Case lstrcmp("test1",lpStr)
SendMessage(List,LB_RESETCONTENT,0,0)
SendMessage(List,LB_ADDSTRING,0,"test1")
Case lstrcmp("test2",lpStr)
SendMessage(List,LB_RESETCONTENT,0,0)
SendMessage(List,LB_ADDSTRING,0,"test2")
Case lstrcmp("test3",lpStr)
SendMessage(List,LB_RESETCONTENT,0,0)
SendMessage(List,LB_ADDSTRING,0,"test3")
Case Else
SendMessage(List,LB_RESETCONTENT,0,0)
SendMessage(List,LB_ADDSTRING,0,"error")
End Select
/*
' 別にlstrcmp()関数要らなかったという罠...。
Select Case MakeStr(lpStr)
Case "test"
SendMessage(List,LB_RESETCONTENT,0,0)
SendMessage(List,LB_ADDSTRING,0,"test")
Case "test1"
SendMessage(List,LB_RESETCONTENT,0,0)
SendMessage(List,LB_ADDSTRING,0,"test1")
Case "test2"
SendMessage(List,LB_RESETCONTENT,0,0)
SendMessage(List,LB_ADDSTRING,0,"test2")
Case "test3"
SendMessage(List,LB_RESETCONTENT,0,0)
SendMessage(List,LB_ADDSTRING,0,"test3")
Case Else
SendMessage(List,LB_RESETCONTENT,0,0)
SendMessage(List,LB_ADDSTRING,0,"error")
End Select
*/
free(lpStr)
End If
End Sub