Это кажется тривиальным, но с MFC я всегда сталкиваюсь с некоторой глупой тривиальной проблемой, которая останавливает мой рабочий процесс.
Я получаю сообщение об ошибке «Отладка не подтверждено», указывающее на строку 352 afxcmn2.inl:
_AFXCMN_INLINE int CComboBoxEx::AddString(LPCTSTR lpszString)
{ UNUSED_ALWAYS(lpszString); ASSERT(FALSE); return CB_ERR;}
Я пытаюсь просто добавить несколько строк в поле со списком при инициализации, например так:
BOOL myDialog::OnInitDialog()
{
CDHtmlDialog::OnInitDialog();
cb_direction.AddString(CString("North"));
}
Большинство ответов в Google, похоже, предполагают, что AddString происходитдо OnInitDialog, который, кажется, здесь не так.Другая серия ответов в Google предполагает, что обмен данными не происходит или это неправильно, но это не так:
void myDialog::DoDataExchange(CDataExchange* pDX)
{
CDHtmlDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_WHEDIT_DIR, cb_direction);
}
Другое предложение заключалось в том, что поле со списком еще не было создано, но если я отключуВ выпадающем списке, используя следующий код, я не только не получаю сообщение об ошибке, но на самом деле он работает и отключает окно!
BOOL myDialog::OnInitDialog()
{
CDHtmlDialog::OnInitDialog();
cb_direction.EnableWindow(FALSE);
}
Я очистил решение и перестроил его.Я не уверен, что еще мне не хватает.И все, что я хочу сделать, это добавить строку в поле со списком, что заняло бы 2 секунды в .Net (эта программа, которая была написана несколько лет назад кем-то другим, поэтому она в MFC, а не .Net, но я отвлекся).