1

我正在尝试将一些字符串添加到列表框。这是否可以从函数发送消息以将字符串添加到列表框?

4

2 回答 2

3

我得到了正确的代码。就是这样......

LPTSTR  lpBuffer = m_WindowTitle.GetBuffer( );
HWND listHWnd = ::GetDlgItem(AfxGetMainWnd()->m_hWnd, IDC_LIST1);
SendMessage(listHWnd, LB_ADDSTRING, 0, (LPARAM)lpBuffer);
m_WindowTitle.ReleaseBuffer ( );

谢谢您的帮助。

于 2012-07-12T05:49:37.490 回答
2

您可以为列表框创建一个成员变量并说m_ctrlListBox.AddString

CListBox *pMyList = (CListBox *) GetDlgItem(IDC_LIST1);
pMyList->AddString("My String");

如果你想发送消息,那么你可以试试这些

SendMessage(MAKEINTRESOURCE(IDC_LIST1), LB_INSERTSTRING, Index, (LPARAM)lpBuffer);

SendMessage(hWnd, LB_ADDSTRING, NULL, (LPARAM)lpBuffer);

例子:

    CString myString("Hi");
    LPTSTR  lpBuffer = myString.GetBuffer(myString.GetLength());

    CWnd* cw= GetDlgItem(IDC_LIST1);
    ::SendMessage(cw->GetSafeHwnd(), LB_INSERTSTRING, 0, (LPARAM)lpBuffer);
    myString.ReleaseBuffer ( );
于 2012-07-11T11:30:54.867 回答