Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 5 của 5

Chủ đề: Tạo hàm

  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    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:


    Mã:
    //CWinThead* m_pThread;void CMFCAppDlg::OnBnClickedTest(){    m_pThread = AfxBeginThread(MyThreadProc,NULL);} //static method.UINT CMFCAppDlg::MyThreadProc(LPVOID lParam){    SYSTEMTIME time;    CString s;    while (TRUE)    {    //////////////////////      }    return 0;}
    Nhưng thay vì dùng:

    Mã:
    UINT CMFCAppDlg::MyThreadProc(LPVOID lParam){    /////////////////////    {    //////////////////////      }    return 0;}
    thì mình dùng:


    Mã:
    BOOL CUHF_MFCDlg:destroyWindow() {// TODO: Add your specialized code here and/or call the base class return CDialog:destroyWindow();}
    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.

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    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.

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi khoavl
    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:


    Mã:
    //CWinThead* m_pThread;void CMFCAppDlg::OnBnClickedTest(){    m_pThread = AfxBeginThread(MyThreadProc,NULL);} //static method.UINT CMFCAppDlg::MyThreadProc(LPVOID lParam){    SYSTEMTIME time;    CString s;    while (TRUE)    {    //////////////////////      }    return 0;}
    Nhưng thay vì dùng:

    Mã:
    UINT CMFCAppDlg::MyThreadProc(LPVOID lParam){    /////////////////////    {    //////////////////////      }    return 0;}
    thì mình dùng:


    Mã:
    BOOL CUHF_MFCDlg:destroyWindow() {// TODO: Add your specialized code here and/or call the base class return CDialog:destroyWindow();}
    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!

  4. #4

    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:[IMG]images/smilies/biggrin.png[/IMG]estroyWindow()
    {
    // TODO: Add your specialized code here and/or call the base class

    return CDialog:[IMG]images/smilies/biggrin.png[/IMG]estroyWindow();
    }

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

  5. #5
    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 ?

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •