你可以向我解释这个功能是做什么的,我正在阅读一本编程书,我正在努力遵循这个功能。
从我可以收集的函数中获取窗口的句柄(在这种情况下是一个对话框),然后在第二个参数中传递信息,第三个参数是指向实际对象的指针。
为了给出一些上下文,我试图使用计算机具有的适配器填充组合框。
void AddItem(HWND hWnd, char *ch, void *pData)
{
WPARAM nI = (WPARAM)((int)(DWORD)SendMessage(hWnd,CB_ADDSTRING,0,(LPARAM)ch));
SendMessage(hWnd,CB_SETITEMDATA, nI, (LPARAM)pData);
}
这是一个示例电话:
for (UINT a=0; a<m_dwNumAdapters; a++)
{
AddItem(m_hADAPTER, m_xAdapterInfo[a].d3dAdapterIdentifier.Description,
&m_xAdapterInfo[a]);
}
感谢。
答案 0 :(得分:1)
我之前使用类似的东西将项目添加到组合框中,我可能会有所帮助。
SendDlgItemMessage(hwnd, IDC_COMBOSTATUS, CB_ADDSTRING, 0, (LPARAM) (LPCTSTR) "Available");
hwnd处理对话框的地方,IDC_COMBOSTATUS是资源ID,其他很清楚。
尝试使用SendDlgItemMessage函数而不是SendMessage。
此致
Vajda
答案 1 :(得分:1)
它将一个字符串值和相关的整数添加到组合框中。
您可能缺少的方面是列表框,组合等在与文本标签列表平行的列表中存储整数值(与指针大小相同)。你可以把任何你喜欢的东西放在整数值中。例如,您可以输入指向包含更多信息的某些struct
的指针。
当您需要响应用户的选择时,您只需读出所选的整数值,将其转换为指针,然后对该信息执行某些操作。
当然,许多列表和组合不需要任何这些(简单的字符串就足够了),因此通常会传递0
。