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

Đề tài: [VC] Gán 1 biến của Dialog này cho 1 biến của Dialog khác

  1. #1
    No Avatar
    htqh Khách

    Mặc định [VC] Gán 1 biến của Dialog này cho 1 biến của Dialog khác

    Em muốn gán 1 biến trong 1 Dialog này cho 1 biến trong 1 Dialog khác thì phải làm sao a?Chẳng hạn như ta có 1 biến
    CString m_sTen;
    ở trên 1 Dialog nào đó,em muốn lấy lại giá trị của biến này để sử dụng trong các Dialog khác thì phải làm sao?

  2. #2
    Ngày gia nhập
    07 2006
    Bài viết
    166

    Giả sử Dialog1 gọi Dialog2 bằng cách:
    Code:
    CDialog2 dlg;
    dlg.DoModal();
    trong Dialog2 có CString m_sTen thì lấy m_sTen bằng cách dùng dlg.m_sTen.
    Không biết có đúng ý của bạn không nữa.

  3. #3
    No Avatar
    htqh Khách

    Cái này là hiển thị Dialog của CDialog2 phải không anh?Em cũng làm trường hợp này rồi!
    //**************************************

    Ý của em là như vậy nè anh:
    Trên Dialog1 có 1 biến là CString m_sTen. Dialog1 gọi Dialog2 (như anh làm ở trên) và trên Dialog2 lại có 2 Tab chẳng hạn(Ví dụ như là Tab1 và Tab2 đi).Em muốn hiển thị biến m_sTen (của Dialog1) trên Tab1.

    //**************************************
    Em làm mãi mà không được!Có thế em diễn đạt hơi khó hiểu!Mới học mà anh!He he!Giúp em với nha!
    Thanks

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

    Hiện thị trên Tab thì chính là hiện thị trên Dialog còn đâu. Tóm lại là không hiểu lắm nhưng cái đó cũng chẳng quan trọng . Để gán m_sTen của Diglog1 cho Dialog2 (theo như bạn nói) thì ở lớp chứa Dialog2 bạn có một hàm để gán biến m_sTen ví dụ là SetString (CString) sau đó gọi dlg.SetString(m_sTen) hoặc là cho luôn vào hàm khởi tạo cũng được.

  5. #5
    No Avatar
    htqh Khách

    Em hiểu cách làm của bác!Đối với biến như là static em nghĩ chắc sẽ làm thế được!Nhưng với biến của Edit Box thì làm sao hả anh?Bởi vì mình muốn lấy giá trị của biến này thì phải dùng
    UpdateData(FALSE);
    Nhưng trong Diallog2 thì làm sao mà lấy được giá trị của "m_sTen" trong Dialog1 được nhỉ?
    Nếu dùng biến toàn cục thì có thể được không anh?Nó giống như là trung gian!Tức là ta sẽ gán m_sTen cho biến toàn cục sau đó gán biến này cho biến trên Dialog2.Anh nghĩ làm như vậy có được không?Em làm nhưng toàn bị lỗi!Làm sao để mình sử dụng được 1 biến toàn cục trong toàn bộ project hả anh?
    Và nếu anh có cách gì khác thì chỉ cho em với nha!

  6. #6
    Ngày gia nhập
    08 2006
    Nơi ở
    TpHCM
    Bài viết
    202

    Mặc định [VC] Gán 1 biến của Dialog này cho 1 biến của Dialog khác

    Code:
    CString CDialog1::GetTen() {
      UpdateData(true);
      CString res = m_sTen;
      UpdateData(false);
      return res;
    }

  7. #7
    No Avatar
    htqh Khách

    Trích dẫn Nguyên bản được gửi bởi nguyentuan2
    Code:
    CString CDialog1::GetTen() {
      UpdateData(true);
      CString res = m_sTen;
      UpdateData(false);
      return res;
    }
    Em đã thử làm như anh nói!Vấn đề là khi em khai báo 1 đối tượng của CDialog1 trong Dialog2(để sử dụng hàm GetTen()) thì nó báo lỗi(em khai báo bằng cách click chuột phải vào CDialog2 trên class view và chọn "Add Member Variable").
    Còn nếu em khai báo như thế này thì cũng không thành công,khi dịch chương trình thì không có lỗi,nhưng khi chạy chương trình thì không chạy được.

    //************************************************** ******
    BOOL CDialog2::OnInitDialog()
    {
    CDialog::OnInitDialog();
    CDialog1 doiTuong;
    m_sHienThi = doiTuong.GetTen();
    UpdateData(FALSE);
    }
    //************************************************** ******

    Có phải ý anh là thế này không?
    Anh chỉ rõ hơn dùm em nha!Em sắp phải nộp bài tập này rồi!
    Thanks

  8. #8
    Ngày gia nhập
    07 2006
    Bài viết
    166

    Đọc từ đầu đến cuối vẫn không hiểu cậu htqh này hỏi cái gì nữa. Tốt nhất là cậu upload cái đang làm rồi bảo sửa theo ý mình (dĩ nhiên chỉ một phần) có khi nhanh hơn đấy.

  9. #9
    No Avatar
    htqh Khách

    Ui,bài của em liên quan nhiều thứ lằng nhằng lắm anh à!Post lên thì phải post cả project luôn đó!
    Ý của em là làm sao mà sử dụng 1 biến toàn cục cho toàn bộ project,nghĩa là trong bất kỳ file nào trong project cũng có thể dùng giá trị của biến này!Chỉ cần các anh chỉ cho em cái này thôi!Những thứ khác em sẽ thử tự làm! Nếu vẫn không thành công thì lại hỏi các anh! he he

  10. #10
    Ngày gia nhập
    08 2006
    Nơi ở
    TpHCM
    Bài viết
    202

    chỉ cần khai báo 1 biến không thuộc 1 class/struct nào, thì biến đó sẽ là toàn cục. Nên khai báo trong 1 file .cpp, và nếu trong file .cpp/.h khác muốn truy xuất biến đó thì khai báo extend
    ví dụ:
    //a.cpp
    int a;

    //b.cpp
    extend int a;
    ...
    //b.h
    extend int a;
    ...

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

  1. 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
  2. Mất dialog chính khi add biến trong MFC
    Gửi bởi night1211 trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 1
    Bài viết cuối: 08-12-2009, 06:17 PM
  3. nhập giá trị cho dialog trong vc++ | Lưu giá trị của textedit vào biến như thế nào?
    Gửi bởi teamoh2 trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 3
    Bài viết cuối: 28-05-2009, 09:42 PM
  4. [Hỏi]Lấy giá trị của một biến từ Dialog1 gửi qua Dialog 2 ? (VC 8)
    Gửi bởi mqkdnvn trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 6
    Bài viết cuối: 14-10-2008, 05:28 PM
  5. Có ai biết hide một phấn của Dialog
    Gửi bởi thieuan trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 2
    Bài viết cuối: 23-04-2007, 07:39 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