ComboBox项目中的Win32 API C结构

时间:2016-11-30 08:57:45

标签: c winapi combobox

是否有人知道如何使用C中的Win32 API(无论是C#还是C ++)将struct中的项目添加到C中的ComboBox中?

struct item {
  char *label, 
  int value;
};

因此,当我们检索所选项时,我们检索值而不是显示的字符串。

1 个答案:

答案 0 :(得分:3)

您可以使用CB_SETITEMDATACB_GETITEMDATA消息。

基本上,在组合框中插入新字符串后,例如通过CB_ADDSTRING,成功返回添加的字符串从零开始的索引。

然后,您可以将此索引与CB_SETITEMDATA一起使用,将该项目(具有该索引)与您自己的自定义数据相关联(通过lParam中的指针传递)。 / p>

同样,您可以使用CB_GETITEMDATA检索该数据,在wParam中指定要从中检索数据的项目的从0开始的索引。

P.S。您可能希望使用更高级别更方便的helper macros for ComboBoxes而不是原始Windows消息,例如ComboBox_SetItemDataComboBox_GetItemData