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

Đề tài: Xử lý Dialog trong MFC | Code điều Khiển Dialog con ở đâu?

  1. #1
    Ngày gia nhập
    01 2009
    Bài viết
    201

    Wink Xử lý Dialog trong MFC | Code điều Khiển Dialog con ở đâu?

    Giả dụ mình có 1 Dialog mẹ gọi đến 1 Dialog con,vậy Hàm Khởi tạo Dialog con ở đâu vậy
    VD như đây là hàm khởi tạo Dialog trong Dialog mẹ,vậy hàm khởi tạo trong dialog con là hàm nào,nếu không có thì làm thế nào để tạo ra nó,giả dụ như mình muốn là khi sinh ra dialog con thì sẽ có thời gian chạy trên đó chẳng hạn
    Visual C++ Code:
    1. BOOL CTaskManagerDlg::OnInitDialog()
    2. {
    3.     CDialog::OnInitDialog();
    4.  
    5.     // Add "About..." menu item to system menu.
    6.  
    7.     // IDM_ABOUTBOX must be in the system command range.
    8.     ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
    9.     ASSERT(IDM_ABOUTBOX < 0xF000);
    10.  
    11.     CMenu* pSysMenu = GetSystemMenu(FALSE);
    12.     if (pSysMenu != NULL)
    13.     {
    14.         CString strAboutMenu;
    15.         strAboutMenu.LoadString(IDS_ABOUTBOX);
    16.         if (!strAboutMenu.IsEmpty())
    17.         {
    18.             pSysMenu->AppendMenu(MF_SEPARATOR);
    19.             pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
    20.         }
    21.     }
    22.  
    23.     // Set the icon for this dialog.  The framework does this automatically
    24.     //  when the application's main window is not a dialog
    25.     SetIcon(m_hIcon, TRUE);         // Set big icon
    26.     SetIcon(m_hIcon, FALSE);        // Set small icon
    27.  
    28.     // TODO: Add extra initialization here
    29.     ListBox.AddString(L"son ha nguyen");
    30.     ListBox.AddString(L"kfjgsdfsdf");
    31.     for (int i=0; i < ListBox.GetCount(); i++)
    32.     {
    33.         if (ListBox.GetItemData(i) == 0)
    34.         {
    35.             ListBox.SetItemData(i, (DWORD) -1);
    36.         }
    37.     }
    38.  
    39.  
    40.     return TRUE;  // return TRUE  unless you set the focus to a control
    41. }

  2. #2
    Ngày gia nhập
    10 2008
    Nơi ở
    Quảng Trị
    Bài viết
    369

    ặc MFC thì mình không giúp được bạn rồi (:()
    Born to walk against the wind... Born to hear my name...
    Stand and fight... Live by your heart...
    Always one more try... I'm not afraid to die...
    Stand and fight... say what you feel...
    Born with a heart of steel ...

  3. #3
    Ngày gia nhập
    01 2009
    Bài viết
    89

    Bạn hỏi vậy thì bạn chưa nắm rõ về kế thừa trong OOP rồi. trong Dialog "mẹ" (theo lời bạn) thì bạn có thể thấy rõ tất "code khởi tạo" đó là vì bạn đã kế thừa từ lớp CDialog và customize nó (chính xác là IDE đã generate code hộ bạn). Giả sử giờ bạn tạo một Dialog con khác kế thừa từ CDialog, bạn muốn "thấy code khởi tạo" thì bạn phải tự tạo ra nó chứ (bằng các tạo thêm hoặc override lên hàm từ lớp CDialog).

  4. #4
    Ngày gia nhập
    08 2006
    Bài viết
    32

    Bạn sinh mã ngay trong hàm OnInitDialog ấy.CMyDialog dialog; chẳng hạn.
    sau đó bạn thêm vào dialog.DoModal() thế là ok mà

  5. #5
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,750

    Mỗi Dialog được quản lý dưới một Class kế thừ từ CDialog, vì thế khi gọi bạn chỉ cần khai báo một biến member của Dialog, rồi tùy theo bài toán mà gọi nó ra. Ví dụ khi bạn tạo một Project nó đã có sẵn code ví dụ để gọi Dialog có tên là About, bạn hãy thử xem, code của nó dạng thế này:

    CAboutDlg dlgAbout;
    dlgAbout.DoModal();
    dlgAbout.myfunction(parameter ... );

    Chúc bạn may mắn!
    Email: admin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667 (Office: 04 6329 2380)
    Yahoo & Skype: dreaminess_world (Vui lòng chỉ rõ mục đích ngay khi liên hệ, cảm ơn!)

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó. Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp!

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. Cách tạo Dialog bằng code trong MFC như thế nào?
    Gửi bởi chuong01 trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 15
    Bài viết cuối: 13-10-2010, 09:06 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