Từ 1 tới 5 trên tổng số 5 kết quả

Đề tài: Cho em hỏi về gọi Dialog khi ở ngoài lớp CMyView?

  1. #1
    Ngày gia nhập
    10 2008
    Bài viết
    58

    Mặc định Cho em hỏi về gọi Dialog khi ở ngoài lớp CMyView?

    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)
    C++ Code:
    1. CMy6View::OnClickContinue()
    2. {
    3.     /*ResumeThread(h);*/
    4.     CControlDlg dlg;
    5.     dlg.DoModal();
    6. }
    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:
    C++ Code:
    1. Recursivite::Afficher()
    2. {
    3.     CControlDlg dlg;
    4.     dlg.DoModal();
    5. }
    Đâ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é!
    Attached Files Attached Files
    • Kiểu file: rar 6.rar (67.4 KB, 33 views)

  2. #2
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    Chỉ thấy button result ? Ko thấy button gì đó như cậu nói ?

  3. #3
    Ngày gia nhập
    10 2008
    Bài viết
    58

    Chắc là anh chạy nhầm cái bài cũ của em rồi, bài mới em đính kèm ở trên đó, anh xóa file cũ ở máy đi

  4. #4
    Ngày gia nhập
    10 2008
    Bài viết
    58

    Em thử rồi, nguyên nhân ko gọi đc Dialog là vì đang chạy trong thread, ko biết có anh nào có cách giải quyết đc giúp em ko ạ?

  5. #5
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    Thử cách này xem sao, khi cậu tạo thread thì có hàm callback threadProc.
    Trong hàm này có thể truyền dữ liệu vào con trỏ void.
    Cậu để class Dialog vào con trỏ void này rồi xử lí trên thread.

Các đề tài tương tự

  1. Dialog::DoModal trong MFC. Làm thế nào để tương tác với dialog bên dưới?
    Gửi bởi rua_con trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 7
    Bài viết cuối: 29-02-2012, 03:27 PM
  2. Có một dialog con muốn thay đổi một vài thông số trên dialog cha thì làm thế nào
    Gửi bởi theboy909 trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 2
    Bài viết cuối: 24-05-2011, 03:39 PM
  3. gọi dialog từ 1 dialog trong Visual C++ như thế nào?
    Gửi bởi attain11 trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 2
    Bài viết cuối: 27-10-2010, 09:29 PM
  4. Xử lý Dialog trong MFC | Code điều Khiển Dialog con ở đâu?
    Gửi bởi AdminPro trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 4
    Bài viết cuối: 08-04-2009, 10:53 PM
  5. Di chuyển Dialog khi drag and drop phần thân Dialog (Client)?
    Gửi bởi mu9991 trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 4
    Bài viết cuối: 07-11-2008, 10:48 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn