#winapi #combobox #itemscontrol
#winapi #combobox #itemscontrol
Вопрос:
В чем разница между ComboBox_AddItemData()
и ComboBox_AddString()
? из документации мне это непонятно. ComboBox_AddItemData()
Добавляет ли данные в поле со списком, в смысле SetWindowLongPtr(hwnd, GWLP_USERDATA, dataInstance)
? и в этом случае dataInstance можно каким-то образом преобразовать в строку, которая будет отображаться в выпадающем списке, или это псевдоним ComboBox_AddString()
, может быть, по историческим причинам?
Комментарии:
1. нет никакой разницы на двоичном уровне. это добавит новый элемент в список поля со списком. вопрос только в стиле.
ComboBox_AddString
есть смысл использовать, когдаCBS_HASSTRINGS
включен стиль, в противном случае — использоватьComboBox_AddItemData
. и, конечноGWLP_USERDATA
, здесь нет ничего общего2. Удобные макросы (например
ComboBox_AddItemData
) расширяются доSendMessage
вызовов. Документация для фактических сообщений (например, CB_ADDSTRING ) обычно содержит более полную документацию.ComboBox_AddItemData
аналогиченGWLP_USERDATA
в том смысле, что он позволяет клиентскому коду связывать произвольные данные с элементом. Затем поле со списком, нарисованное владельцем, может преобразовать данные элемента в его строковое представление для отображения.