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

Đề tài: Tạo hàm

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

    Thumbs down Tạo hàm

    Mình mới bắt đầu nghiên cứu về VC++.net, mong các bạn hãy giúp mình với, làm thế nào tạo ra được một hàm BOOL như sau:

    BOOL CUHF_MFCDlg:estroyWindow()
    {
    // TODO: Add your specialized code here and/or call the base class

    return CDialog:estroyWindow();
    }

    Mình đang dùng MFC trong VS 2008.

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

    Mình ko hiểu bạn hỏi gì cả. Hỏi phải có đầu có đuôi chứ. Tạo hàm ý bạn là thế nào ?
    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.

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

    Cho mình sorry nha, ý của mình là:
    muốn chạy chương trình trong theard giống như đoạn code sau:

    C++ Code:
    1. //CWinThead* m_pThread;
    2. void CMFCAppDlg::OnBnClickedTest()
    3. {
    4.     m_pThread = AfxBeginThread(MyThreadProc,NULL);
    5. }
    6.  
    7. //static method.
    8. UINT CMFCAppDlg::MyThreadProc(LPVOID lParam)
    9. {
    10.     SYSTEMTIME time;
    11.     CString s;
    12.     while (TRUE)
    13.     {
    14.     ////////////////////// 
    15.     }
    16.     return 0;
    17. }
    Nhưng thay vì dùng:
    C++ Code:
    1. UINT CMFCAppDlg::MyThreadProc(LPVOID lParam)
    2. {
    3.     /////////////////////
    4.     {
    5.     ////////////////////// 
    6.     }
    7.     return 0;
    8. }
    thì mình dùng:

    C++ Code:
    1. BOOL CUHF_MFCDlg:destroyWindow()
    2. {
    3. // TODO: Add your specialized code here and/or call the base class
    4.  
    5. return CDialog:destroyWindow();
    6. }

    Cho mình hỏi cách khai báo để tạo ra đoạn mình cần thay thế ?
    Mong các bạn chỉ giúp mình.
    Đã được chỉnh sửa lần cuối bởi meoconlongvang : 20-11-2008 lúc 04:00 PM.

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

    Mình vẫn chưa hiểu, CUHF_MFCDlg là ở đâu ra vậy bạn ? Nó có liên quan gì đến CMFCAppDlg ko ?
    Theo mình thì CMFCAppDlg sẽ gọi một phương thức nào đó của CUHF_MFCDlg, trong phương thức đó sẽ tạo thread và chỉ tới hàm destroyWindow.
    Đã được chỉnh sửa lần cuối bởi meoconlongvang : 20-11-2008 lúc 04:05 PM.
    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.

  5. #5
    No Avatar
    ngocbig Khách

    Trích dẫn Nguyên bản được gửi bởi khoavl Xem bài viết
    Cho mình sorry nha, ý của mình là:
    muốn chạy chương trình trong theard giống như đoạn code sau:

    C++ Code:
    1. //CWinThead* m_pThread;
    2. void CMFCAppDlg::OnBnClickedTest()
    3. {
    4.     m_pThread = AfxBeginThread(MyThreadProc,NULL);
    5. }
    6.  
    7. //static method.
    8. UINT CMFCAppDlg::MyThreadProc(LPVOID lParam)
    9. {
    10.     SYSTEMTIME time;
    11.     CString s;
    12.     while (TRUE)
    13.     {
    14.     ////////////////////// 
    15.     }
    16.     return 0;
    17. }
    Nhưng thay vì dùng:
    C++ Code:
    1. UINT CMFCAppDlg::MyThreadProc(LPVOID lParam)
    2. {
    3.     /////////////////////
    4.     {
    5.     ////////////////////// 
    6.     }
    7.     return 0;
    8. }
    thì mình dùng:

    C++ Code:
    1. BOOL CUHF_MFCDlg:destroyWindow()
    2. {
    3. // TODO: Add your specialized code here and/or call the base class
    4.  
    5. return CDialog:destroyWindow();
    6. }

    Cho mình hỏi cách khai báo để tạo ra đoạn mình cần thay thế ?
    Mong các bạn chỉ giúp mình.
    Bạn chưa đọc về thread trong MFC????? Chưa xem qua MSDN Doc??????

    Tham số thứ nhất của hàm AfxBeginThread là một hàm static hoặc là global (hoặc là CRuntimeClass*) và có dạng UINT __cdecl MyControllingFunction( LPVOID pParam )

    Vì vậy bạn không thể thay cái hàm mà bạn muốn. Bạn có thể gọi cái hàm của bạn trong hàm ThreadProc. Nếu CUHF_MFCDlg là MainWnd thì sử dụng AfxGetMainWnd()->DestroyWindow(). Nếu không thì truyền nó qua tham số lParam của hàm ThreadProc. Good luck!

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