GetComboBoxInfo возвращает false - PullRequest
1 голос
/ 04 июля 2019

У меня есть производный класс от CComboBox, и я хочу создать подкласс CEdit и CListCtrl с моими производными классами.

По какой-то причине, когда я вызываю функцию GetComboBoxInfo, она возвращает false.

Вот как я называю свою функцию:

PCOMBOBOXINFO pcbi;
BOOL verif;
verif = GetComboBoxInfo(pcbi);

Я пробовал с this->GetComboBoxInfo(pcbi), но все равно ничего.

Я пытался извлечь свой класс из CComboBoxEx и использовать функцию GetEditCtrl(), но тоже ничего.

Я использовал функцию GetLastError(), чтобы перехватить сообщение об ошибке, и оно дает мне 87, что составляет ERROR_INVALID_PARAMETER, но я не понимаю, почему.

Thx.

1 Ответ

3 голосов
/ 04 июля 2019

Одна очевидная ошибка - отправка неинициализированного указателя на функцию GetComboBoxInfo.

Никогда не отправляйте неинициализированный указатель на какую-либо функцию, если только эта функция не берет ссылку на этот указатель и не выполняет инициализацию / настройку внутри функции.

Как следует из комментария, вам нужно использовать тип без указателя, так как PCOMBOBOXINFO является объявлением указателя. Используемый тип: COMBOBOXINFO:

COMBOBOXINFO cbi {};  // set everything to 0
cbi.size = sizeof(COMBOBOXINFO); // set the size, as per the documentation
BOOL verif;
verif = GetComboBoxInfo(&cbi);  // pass the address

См. Документацию по GetComboBoxInfo

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...