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

Đề tài: Trục trặc trong việc tạo một dialog đơn giản

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

    Wink Trục trặc trong việc tạo một dialog đơn giản

    Code:
    #include <afxwin.h>
    #include "Resource.h"
    
    class DialogApp : public CWinApp
    {
    public:
    	BOOL InitInstance();	
    };
    
    class CExoDialog : public CDialog
    {
    public:
    	enum { IDD = IDD_DIALOG1 };
    
    	CExoDialog();
    };
    
    CExoDialog::CExoDialog()
    	: CDialog(CExoDialog::IDD, NULL)
    {
    }
    
    BOOL DialogApp::InitInstance()
    {	
    	CExoDialog Dlg;
    	m_pMainWnd = &Dlg;
    	Dlg.DoModal();
    
    	return TRUE;
    };
    
    DialogApp theApp;
    Trong phần code sau:
    Code:
    CExoDialog::CExoDialog()
    	: CDialog(CExoDialog::IDD, NULL)
    {
    }
    Ở đây theo mình hiểu thì class CExoDialog có một class cơ sở là CDialog và cần gọi hai thông số của nó là CExoDialog::IDD và NULL. Vậy mục đích của việc gọi này là gì vậy. Mình thử bỏ đi thì biên dịch không lỗi, nhưng khi chạy thì bị báo gỗi. Các bạn giúp minh giải thích chỗ này nhé. Cảm ơn. ^_^

  2. #2
    Ngày gia nhập
    10 2007
    Nơi ở
    /root
    Bài viết
    318

    Property nguyên mẫu của nó đây :
    Visual C++ Code:
    1. explicit CDialog(
    2.    LPCTSTR lpszTemplateName,
    3.    CWnd* pParentWnd = NULL
    4. );

  3. #3
    Ngày gia nhập
    10 2008
    Nơi ở
    Hà Nội
    Bài viết
    1

    Ở đây theo mình hiểu thì class CExoDialog có một class cơ sở là CDialog và cần gọi hai thông số của nó là CExoDialog::IDD và NULL. Vậy mục đích của việc gọi này là gì vậy. Mình thử bỏ đi thì biên dịch không lỗi, nhưng khi chạy thì bị báo gỗi. Các bạn giúp minh giải thích chỗ này nhé. Cảm ơn. ^_^
    Ý nghĩa câu lệnh trên là nó gọi cai constructor của CDialog thôi.Vì CExoDialog kế thừa từ CDialog mà.Thay vì viết một cái constructor riêng mà nội dung y hệt của CDialog thì thà gọi luôn của thằng CDialog luôn.

  4. #4
    Ngày gia nhập
    09 2007
    Bài viết
    724

    Khởi tạo 1 dialog có ID là IDD và có cửa sổ cha của nó là NULL.
    trong Windows thì địa của cửa sổ desktop là NULL. (cửa sổ cha của mọi cửa sổ).
    Như vậy câu trả lời cho câu hỏi của bạn là: tạo ra một dialog có ID là IDD và có cửa sổ cha của nó là Desktop.

    không biết đúng ý của bạn không?

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ách gọi biến từ dialog vào dialog khác trong MFC
    Gửi bởi xXDarknessXx trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 5
    Bài viết cuối: 21-12-2011, 10:08 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