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ố 17 kết quả

Đề tài: MFC - Sự kiện tạm dừng Form trong VC++ 2005

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

    Wink MFC - Sự kiện tạm dừng Form trong VC++ 2005

    VD Form của mình đang chạy,mình muốn làm cho nó tạm dừng thôi thì làm thế nào

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

    Đọc câu hỏi của bạn khó hiểu thiệt á.

    Đang chạy là như thế nào vậy bạn? Đang load lên hay là làm gì?

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

    Mình đang chạy 1 Form,VD như 1 Form cho việc tìm kiếm chẳng hạn nhé,mình đang làm dở thì cần 1 nút để tạm dừng để có thể 1 lúc sau làm tiếp,vậy thì phải làm thế nào

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

    hình như là bạn đang làm 1 cái demo thuật toán gì đó bằng phương pháp chạy từng bước phải không?

    Nếu vậy thì lúc này mình chỉ "Pause" lúc show lên thôi.

    trong quá trình thực hiện bạn lưu lại các bước (với cấu trúc dữ liệu hợp lý) sau đó bạn show ra thì chỉ việc đọc list hay array mà bạn lưu lại lúc thực hiện thuật toán của bạn thôi. nếu người dùng Pause thì bạn lưu lại chỉ số lúc người ta pause. sau đó muốn tiếp tục thì sẽ tiếp từ cái tiếp theo thôi.

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

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

    Nó na ná như việc Mình đọc hết File nhé,mình đang đọc và chạy được 30 % rồi,vậy thì khi ấn vào pause thì nó ngừng lại ,khi nào mình ấn tiếp tục nó lại tiếp tục chạy,híc mình nghĩ chắc là có sự kiện dừng Form chứ nhỉ,đại loại như hàm sleep() của Form vậy....

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

    Mặc định MFC - Sự kiện tạm dừng Form trong VC++ 2005

    mình chưa thấy và không biết có cái event này không? nhưng mình nghĩ là sẽ không có đâu. vì nếu bạn dùng các hàm về time thì nó rất cứng trong trường hợp này.

    cái của bạn thì khá đơn giản mà

    đọc file thì kiếm cách lưu thằng offset của nó lại. sau đó dùng thằng seek để move tới vị trí cần đọc và đọc tiếp. (do đang mượn máy của thằng bạn nên ko có vs để mình gõ demo cho bạn được).

  7. #7
    Ngày gia nhập
    01 2007
    Nơi ở
    Hải Phòng
    Bài viết
    210

    Bạn thử dùng Thread xem.
    Tạo một thread mới làm việc đọc file.
    Khi nào nhấn Pause thì tạm dừng nó lại.
    Khi nào Resume thì chạy nó tiếp.
    pEnGwINUS.

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

    Trích dẫn Nguyên bản được gửi bởi hieubm Xem bài viết
    Bạn thử dùng Thread xem.
    Tạo một thread mới làm việc đọc file.
    Khi nào nhấn Pause thì tạm dừng nó lại.
    Khi nào Resume thì chạy nó tiếp.
    vậy VD mình có cả thời gian ở trên đó thì làm sao dừng thời gian lại được,mà nhân tiện hỏi luôn,làm thế nào để tạm dừng 1 thread vậy cậu,nó đơn giản hơn việc tạm dừng 1 Process ah :((

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

    Đây là cách tạm dừng Thread :
    C++ Code:
    1. SuspendThread(GetCurrentThread())
    Process là tập hợp của nhiều thread vì vậy tạm dừng 1 thread dĩ nhiên là dễ hơn.

    Tuy nhiên mình nghĩ cách này ko giải quyết được vấn đề vì khi thread dừng, form sẽ ko vẽ lại được. Mình nghĩ bạn nên có vòng lặp vô tận, mỗi bước lặp bạn Sleep cho đỡ tốn cpu. Bạn đặt một biến cờ, khi từ Pause chuyển sang trạng thái Resume thì bật cờ lên. Vòng lặp sẽ liên tục kiểm tra biến cờ cho đến khi nó được bật thì sẽ thoát, khi đó thuật toán sẽ chạy tiếp phía sau vòng lặp.
    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
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    Tùy trường hợp cụ thể mà có cách giải quyết riêng.

    Vd như trường hợp đọc file của bạn AdminPro ( mình nghĩ nick này ko phù hợp lắm ) . Bạn sẽ cần tạo thêm 1 thread cho việc đọc file.

    Vd bạn có 1 MainUI, trên này có 3 buttons là : Search Pause Stop

    Khi click Search bạn sẽ tạo 1 thread mới và nhiệm vụ thread này là tìm kiếm thông tin gì đó ( vd tìm kiếm file với file name là "xyz").
    Khi click Pause thì bạn sẽ dùng hàm của Mèo với threadID cậu lưu trữ lại, hoặc dùng hàm sleep cho thread bạn tạo ra.
    Khi click Stop thì bạn terminal thread đó.

    Nói chung cần tạo 1 thread mới để quản lí việc chạy - ngừng - tắt .

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

  1. C# 2005 lập trình windows form.
    Gửi bởi trungphua trong diễn đàn Công cụ, ebooks C#, ASP.NET, và Windows Mobile
    Trả lời: 12
    Bài viết cuối: 29-06-2012, 07:27 AM
  2. Cách mở file solution của visual studio 2005 trong visual web developer 2005 express?
    Gửi bởi funny_dn89 trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 1
    Bài viết cuối: 19-03-2011, 12:41 AM
  3. Update SP1 cho VS 2005 | Nâng Visual studio 2005 lên SP1
    Gửi bởi mushu trong diễn đàn Công cụ, ebooks VC++
    Trả lời: 4
    Bài viết cuối: 13-04-2009, 06:01 PM
  4. Gọi form trong MFC 2005 như thế nào để có thể tương tác cả 2 form?
    Gửi bởi nam_dkn trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 3
    Bài viết cuối: 10-04-2009, 01:41 PM
  5. Insert Image in SQl 2005 dùng VB.net 2005
    Gửi bởi nthung trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 7
    Bài viết cuối: 12-05-2008, 05:21 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