C++ 使用 SendMeassage 填充列表框

问题描述 投票:0回答:1

我试图用从文本文件中读取的数据填充列表框,但没有运气。我尝试了几种方法来执行 SendMessage (请参见下文),但得到相同的“无效的强制转换类型错误。”

列表框:

CreateWindow("listbox", NULL, WS_CHILD | WS_VISIBLE | WS_VSCROLL|
                         LBS_NOTIFY, 20, 90, 200, 365,
                         hwnd, (HMENU)LST_LISTBOX, NULL, NULL);

我不断改变SendMessage:

SendMessage(LST_LISTBOX, LB_INSERTSTRING, 0, (LPARAM)10); //myline[i]);

SendMessage(LST_LISTBOX, LB_ADDSTRING, 0, (LPARAM) myline[i]);

SendMessage(GetDlgItem(hwnd, LST_LISTBOX), LB_ADDSTRING, 0, (LPARAM) myline[i] );

从文件填充列表框的最佳方法是什么。谢谢你...

c++ winapi listbox sendmessage
1个回答
0
投票

您需要保存CreateWindow返回的HWND,然后发送到该HWND。 LPARAM 需要是指向您要添加的字符串的指针。

HWND hwndLB = CreateWindow("listbox", NULL, WS_CHILD | WS_VISIBLE | WS_VSCROLL|
                         LBS_NOTIFY, 20, 90, 200, 365,
                         hwnd, (HMENU)LST_LISTBOX, NULL, NULL);

SendMessage(hwndLB, LB_ADDSTRING, 0, (LPARAM)myline/*&myline[0]*/);
© www.soinside.com 2019 - 2024. All rights reserved.