GetComboBoxInfo 返回 false

GetComboBoxInfo returning false

我有一个来自 CComboBox 的派生 class,我想用我派生的 class 子 class CEditCListCtrl es.

出于某种原因,当我调用函数 GetComboBoxInfo 时,它返回 false。

下面是我调用函数的方式:

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

我试过 this->GetComboBoxInfo(pcbi),但还是不行。

我尝试从 CComboBoxEx 中导出我的 class 并使用 GetEditCtrl() 函数,但也没有。

我使用函数 GetLastError() 来捕获错误消息,它给了我 87,也就是 ERROR_INVALID_PARAMETER,但我不明白为什么。

谢谢。

一个明显的错误是您向 GetComboBoxInfo 函数发送了一个未初始化的指针。

永远不要将未初始化的指针发送给任何函数,除非该函数引用该指针并在函数内部进行初始化/设置。

正如评论所建议的那样,您需要使用 non-pointer 类型,因为 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

See the documentation on GetComboBoxInfo