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;
};
これについて可能な限りの助けをありがとう。
後で編集:コンボボックスが原因で問題が発生することに気づきました。理由はわかりません。リストボックスに置き換えましたが、問題は発生していません。