我创建了一个从 CDialog 派生的 Dialog(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 替换它,我没有遇到麻烦。