ダイアログに送りたいのだから、
pDlg->PostMessage(WM_CLOSE);
では?
> AfxGetMainWnd()->PostMessage(WM_CLOSE);
メインウィンドウに WM_CLOSE を送れば、
普通のWindowsアプリがデフォルトで終わるのは当然かと。
メッセージの送り先はダイアログにするべきだと思います。
また、別にWM_CLOSE である必要もないので独自メッセージでもかまいません。
ダイアログがそのメッセージを受け取ったときに自壊できればいいだけです。
みなさんありがとうございました。
一人で考えていたら絶対に出来なかったと思います。
感謝しています。
以下が最終のソースになります。
XXXXDlg::XXXXDlg( CWnd* pParent /*=NULL*/)
: CDialog(XXXXDlg::IDD, pParent)
{
}
BOOL XXXXDlg::OnInitDialog()
{
CDialog::OnInitDialog();
SetTimer(ID_TIMER, 100, NULL);//0.1秒の設定 <<===追加
EndFlg = FALSE;<<===追加
m_thread = AfxBeginThread( DeleteFunc, this, THREAD_PRIORITY_NORMAL);
return FALSE;
}
void XXXXDlg::OnDlgEnd(){
EndFlg = TRUE;<<---追加
}
static UINT DeleteFunc( LPVOID pParam)
{
XXXXDlg* pDlg = (XXXXDlg*)pParam;
for( int i = 0; i < FullPath.size(); i++ ){
処理
:
}
pDlg->ShowWindow(FALSE);
pDlg->OnDlgEnd();
return 0;
}
//
void XXXXDlg::OnTimer( UINT nIDEvent ){
if(EndFlg == TRUE){
EndDialog(IDCANCEL);
}
CDialog::OnTimer(nIDEvent);
}