Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 18 kết quả

Đề tài: Liên kết 2 Dialog với nhau trong VC++6.0 MFC!

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

    Smile Liên kết 2 Dialog với nhau trong VC++6.0 MFC!

    Mình làm mãi một ví dụ đơn giản mà không được, mình đang lập trình với VC++6.0 MFC, dialog based.

    Giả sử có 2 Dialog .
    Diaglog1 có 1 button, ấn vào button này thì dialog2 hiện ra.
    Trong Dialog2 có một ô editbox để nhập xâu, và 1 button OK .
    Mình muốn sau khi bấm nút OK trong dialog2 thì xâu vừa nhập sẽ hiện ra ở 1 ô static trong dialog1 .

    Cái mình vướng là khi làm thì 2 dialog này là ở 2 class khác nhau, khi làm trong dialog2 thì không thể gọi được biến trong dialog1 .

    Cảm ơn các bạn rất nhiều .
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

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

    khai báo một biến toàn cục có kiểu là CString để lấy với từ khóa là extern để lưu chuổi gõ trong dialog 2.
    xem thêm về từ khóa này trong MSDN hoặc trong các sách C/C++.

    muốn 2 dialog hiểu nhau thì include cái file .h của dialog kia vào (lưu ý cái này chỉ 1 chiều)
    dùng hàm DoModal() để show dialog kia lên.

    chi tiết tham khảo thêm trong MSDN.

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

    bạn có thể sửa vào file project cho mình luôn được không .
    Cái DoModal mình làm được rồi, bằng cách chuột phải vào cái class dialog chính, rồi add thêm biến .không biết có cách khác không .

    File project của mình đây: http://www.mediafire.com/?zzwnkzvlymn

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

    Đây là chương trình demo của mình. Bạn xem lại nhé

    Làm biếng sửa bài của bạn quá
    Attached Files Attached Files

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

    Cái DoModal mình làm được rồi, bằng cách chuột phải vào cái class dialog chính, rồi add thêm biến .không biết có cách khác không .
    Có, khai báo ngay trong hàm gọi DoMoDal();

    Bây giờ mình hỏi zkday cái này nhe:

    Giả sử có n Dialog. Có ID từ 1 -> N
    Có n biến dữ liệu đánh số từ 1-> N

    Mỗi dialg sẽ liệt ke giá trị của n này, và cho phép thay đổi giá trị n mà nó đang giữ.

    Làm sao để cho n dlg hiển thị, và cập nhật khi giá trị biến của nó bị thay đổi.

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

    Mặc định Liên kết 2 Dialog với nhau trong VC++6.0 MFC!

    cảm ơn bạn nhiều, đúng cái mình cần rồi. mình đang bắt chước theo

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

    OK mình đã làm được rồi.Cảm ơn bạn lần nữa.Có một vấn đề nảy sinh bạn ạ.
    Đó là Dialog2 phải đóng thì Static ở Dialog 1 mới được cập nhật.
    Mình muốn nhập được nhiều xâu, tức là sau khi bấm OK ở dialog 2, vẫn tiếp tục nhập tiếp được xâu khác(nói cách khác, dialog 2 nhập và dialog 1 hiển thị đồng thời)

    Mình nghĩ là hàm này
    Code:
    SetDlgItemText(IDC_STATIC1,sStringSend);
    sẽ cần được gọi trong file ChildDlg.cpp
    ý mình là sau khi đọc được xâu thì cho hiển thị luôn sang cái Dialog1.

    Mong bạn giúp đỡ.
    Đã được chỉnh sửa lần cuối bởi huhu : 23-10-2008 lúc 09:32 PM.

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

    @huhu:
    Đây là lời giải cho bài của bạn:
    Visual C++ Code:
    1. // Bắt Event EN_CHANGE của Edit1 bên Dialog2.
    2. void CDlg1::OnChangeEdit1()
    3. {
    4.     CDialog *dlg; // khai báo một đối tượng thuộc lớp CDialog
    5.  // vì Dialog1 là dialog gọi Dialog2 nên dialog1 chính là cha của Dialog2 --> lấy địa chỉ của Dialog2.
    6.     dlg = (CDialog*)GetParent();
    7.     // khi lấy được địa chỉ của dialog1 rồi thì mọi việc xem như xong.
    8.     CString sSet;
    9.     GetDlgItemText(IDC_EDIT1,sSet);
    10.     dlg->SetDlgItemText(IDC_STATIC1,sSet);
    11. }

    @Kid: zkday chưa hiểu ý của kid như thế nào???
    - Khi gọi là một dialog gọi hết tất cả các dialog khác hay là chỉ từng thằng một thôi ?
    - n ở đây kid nói là gì zkday không hiểu?

    Mỗi dialg sẽ liệt ke giá trị của n này, và cho phép thay đổi giá trị n mà nó đang giữ.

    Làm sao để cho n dlg hiển thị, và cập nhật khi giá trị biến của nó bị thay đổi.
    - n là ID của từng Dialog ah?
    - dialog ở đây có sẵn rồi hay cần tạo dạng runtime.


    nếu zkday không nhầm thì câu trả lời cho câu hỏi của kid nằm ở ngay câu trả lời của zkday cho bạn huhu rồi .

    nếu chưa đúng thì kid có thể giải thích cho zkday hết các trường hợp zkday nêu ra được không?


    @huhu tập 2: đây là chương trình demo cho những gì zkday nói ở trên
    Attached Files Attached Files
    Đã được chỉnh sửa lần cuối bởi zkday2686 : 23-10-2008 lúc 10:59 PM.

  9. #9
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    @huhu : bạn phải lưu hwnd của dialog1 và gừi message WM_PAINT qua yêu cầu dialog1 vẽ lại.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

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

    Cách của mèo là một cách nhưng làm hơi cực vì khi SendMessage WM_PAINT tới dialog1 thì nó sẽ Focus lại thằng Dialog1 thì phải
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

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

  1. Kỹ thuật C Cách gọi hàm trong danh sách liên kết kép
    Gửi bởi duythuanIT trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 0
    Bài viết cuối: 26-05-2013, 12:35 AM
  2. Lập trình C++ Biểu diễn đa thức bằng danh sách liên kết
    Gửi bởi gacontapcode trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 03-04-2011, 10:45 AM
  3. Liên lạc giữa các dialog trong MFC
    Gửi bởi iamme22021990 trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 2
    Bài viết cuối: 17-11-2010, 11:35 PM
  4. cách liên kết các dialog với nhau trong win32 cua c 6.0
    Gửi bởi it_2010 trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 1
    Bài viết cuối: 26-03-2010, 01:50 PM
  5. Danh sách liên kết đơn
    Gửi bởi lovelovebaby trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 7
    Bài viết cuối: 26-12-2008, 04:25 PM

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