Bình thường nếu em gọi hàm DoModal ở lớp CMy6View : public CView thì ko sao: (ấn vào nút "Continuer" trong chương trình sẽ hiện ra dialog)
CMy6View::OnClickContinue()
{
/*ResumeThread(h);*/
CControlDlg dlg;
dlg.DoModal();
}
Nhưng em gọi nó ở ngoài lớp CMy6View thì lại lỗi, ở ví dụ của em là gọi ở lớp Recursivite:
Recursivite::Afficher()
{
CControlDlg dlg;
dlg.DoModal();
}
Đây là đoạn em sử dụng hàm Afficher() kia:
Code:
Recursivite::Try(int j, CDC *pDC, int n)
{
for(int i=0;i<8;i++)
if(a[i]&&b[i+j]&&c[i-j+7])
{
r_hcn[i][j].outbm(pDC); Sleep(n);
a[i]=false; b[i+j]=false; c[i-j+7]=false;
if(j<7)
{
int k=j, count=1;
while(col[k+1]==1)
{
k++;
count++;
}
if(k==7) AfxMessageBox("Une solution!",MB_ICONASTERISK);
else Try(j+count, pDC, n);
}
else Afficher();
a[i]=true; b[i+j]=true; c[i-j+7]=true;
r_hcn[i][j].paint(pDC); Sleep(n);
}
return 0;
}
Các anh có thể thử bằng cách ấn vào nút "Suggérer" trong chương trình, khi hiện ra hết 1 đáp thì sẽ bị lỗi. Thay hàm Afficher() bằng AfxMessageBox("Une solution!",MB_ICONASTERISK) thì sẽ trở lại bình thường. Nhưng ý định của em là gọi 1 dialog.
Các anh có thể cho em biết tại sao lại thế ko ạ??
Cám ơn các anh trước nhé!