|
#include "stdafx.h"
#include "App_01.h"
App_01 *CurApp;
static UINT nTimer;
static int i;
// *********************************************************
// ダイアログの処理
// *********************************************************
LRESULT CALLBACK Dialog_01(
HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam )
{
switch( message ) {
case WM_INITDIALOG:
bEnd = false;
CurApp = new App_01( hDlg );
Dlg->Disable( IDC_CHECK );
Dlg->Disable( IDC_CANCEL );
// 初期フォーカス
Dlg->EditFocus( IDC_REF );
return FALSE;
case WM_TIMER:
if ( nTimer == (UINT)wParam ) {
KillTimer( hDlg, nTimer );
nTimer = 0;
// タイマーループメイン処理
for( i = 0; i < 20; i++ ) {
CurApp->Import();
if ( CurApp->bCancel ) {
break;
}
}
// タイマーループの終了地点
if ( CurApp->bCancel ) {
CurApp->ImportEnd();
Dlg->Disable( IDC_CANCEL );
Dlg->Enable( IDC_REF );
Dlg->Enable( IDC_CHECK );
Dlg->Enable( IDCANCEL );
break;
}
// タイマーループ NEXT処理
nTimer = SetTimer( hDlg, 1, 10, NULL );
}
break;
case WM_COMMAND:
// 終了
if( LOWORD(wParam) == IDCANCEL ) {
// 実行中は終了できない
if ( !(CurApp->bCancel) ) {
break;
}
bEnd = true;
delete CurApp;
EndDialog(hDlg, LOWORD(wParam));
return TRUE;
}
// 参照
if ( LOWORD(wParam) == IDC_REF ) {
Buff->SetChar( 0, 0 );
if ( CurApp->Commdlg->OpenFileName( Buff ) ) {
Dlg->EditSetText( IDC_INFILE, Buff );
Dlg->Enable( IDC_CHECK );
Dlg->EditSetText( IDC_INCOUNT, "" );
}
}
// 実行
if ( LOWORD(wParam) == IDC_CHECK ) {
// タイマーループの開始処理
if ( !(CurApp->ImportInit() ) ) {
break;
}
CurApp->bCancel = false;
Dlg->Disable( IDCANCEL );
Dlg->Disable( IDC_REF );
Dlg->Disable( IDC_CHECK );
Dlg->Enable( IDC_CANCEL );
// タイマーループの開始地点
nTimer = SetTimer( hDlg, 1, 1, NULL );
}
// キャンセル
if ( LOWORD(wParam) == IDC_CANCEL ) {
// タイマーループ中止指令処理
if ( !(CurApp->bCancel) ) {
CurApp->bCancel = true;
}
}
break;
}
return FALSE;
}
| |