我有一个来自 CComboBox
的派生类,我想用我的派生类来为 CEdit
和 CListCtrl
子类。
由于某种原因,当我调用函数 GetComboBoxInfo
时,它返回false。
这是我称我的功能的方式:
PCOMBOBOXINFO pcbi;
BOOL verif;
verif = GetComboBoxInfo(pcbi);
我已经尝试了this->GetComboBoxInfo(pcbi)
,但仍然没有。
我尝试从CComboBoxEx
得出我的课程并使用GetEditCtrl()
函数,但也没有。
我已经使用了函数GetLastError()
来捕获错误消息,它给了我87,即ERROR_INVALID_PARAMETER
,但我不明白为什么。
thx。
一个明显的错误是,您向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上的文档