Я создал диалог, созданный на основе CDialog (MFC делает это автоматически), но мне пришлось переопределить метод OnInitDialog
, чтобы выполнить инициализацию ComboBox:
BOOL CLogin::OnInitDialog()
{
CDialog::OnInitDialog();
InitCommonControls();
if ( FillInCombo() != 0 )
//erro ao tentar ler leitoras
return TRUE;
return TRUE;
}
Метод FillInCombo
вызывает класс PCSC для заполнения этой комбинации всеми доступными устройствами чтения смарт-карт.
Однако при отладке происходит странное поведение. При попытке выбрать элемент в комбо, он закрывается автоматически (фактически генерирует событие OnClose), а DoModal возвращает -1.
Затем, затем, приложение больше никогда не будет загружено правильно, если я не очистлю решения и не соберу его заново.
CLogin SmartNetData;
int ret = SmartNetData.DoModal();
switch ( ret )
{
case IDOK:
break;
case -1:
// strange error
OnOK();
return TRUE;
case IDABORT:
case IDCANCEL:
OnOK();
return TRUE;
};
Спасибо за любую возможную помощь в этом.
ПОСЛЕДНЕЕ РЕДАКТИРОВАНИЕ: Я понял, что проблема возникает из-за выпадающего списка. Я не уверен почему. Я заменил его на ListBox, и я не получаю проблем.