2
有誰知道如何將項目從struct
添加到C中的ComboBox中,就像在HTML中一樣 - 使用C中的Win32 API以及C#和C++都不是?ComboBox項目中的Win32 API C結構
struct item {
char *label,
int value;
};
因此,當我們檢索選擇的項目時,我們檢索值而不是顯示的字符串。
有誰知道如何將項目從struct
添加到C中的ComboBox中,就像在HTML中一樣 - 使用C中的Win32 API以及C#和C++都不是?ComboBox項目中的Win32 API C結構
struct item {
char *label,
int value;
};
因此,當我們檢索選擇的項目時,我們檢索值而不是顯示的字符串。
您可以使用CB_SETITEMDATA
和CB_GETITEMDATA
消息。
基本上,在組合框中插入新字符串後,例如,通過CB_ADDSTRING
,添加字符串的從零開始的索引在成功時返回。
然後你可以使用這個指數與CB_SETITEMDATA
,關聯到該項目(具有指數)自己的自定義數據(通過指針在lParam
傳遞)。
同樣,您可以使用CB_GETITEMDATA
檢索該數據,在wParam
中指定要從中檢索數據的項目的從0開始的索引。
P.S.您可能希望使用更高級的更方便的helper macros for ComboBoxes而不是原始Windows消息,例如ComboBox_SetItemData
或ComboBox_GetItemData
。
您可以使用'CB_SETITEMDATA'將一個指針大小的數據值與一個項目相關聯,'CB_GETITEMDATA'將其檢索出來。 –
你的意思是添加所有字符串後,用cb addstring說藍色紅色白色我做了一個循環到cb_setitemdata指定索引0,1,2與12,13,14作爲值如果12意味着藍色? –
@c-dev - 你需要在'CB_ADDSTRING'或'CB_INSERTSTRING'後面調用'CB_SETITEMDATA',並且使用'CB_SETITEMDATA'的這個消息的返回索引,但不要假設0,1,2 – RbMm