none
MFC UI thread communication RRS feed

  • 問題

  • 請問假設我有二個dialog,一是 main dialog 稱為 m_dialog,另一個是含有 progress bar 的 dialog,稱為 p_dialog,程式一開始會先跑出 m_dialog,然後我按下 m_dialog 中的一個 button,然後跳出 p_dialog,在這一段我是在 p_dialog 的初始化時建立一個 work thread,然後我想在 work thread 結束後就把 p_dialog 關閉,回到 m_dialog。
    以上粗體字的部份是我還未想到該如何辦到???

    另外,上面的模式是 work thread 在 p_dialog 裡建立的,會這樣做是因為,一開始我是在 m_dialog 裡用 afxBeginThread 建立起 p_dialog 的 UI Thread,然後往下再建立起其它的 work thread,但是我的 work thread 無法去控制 p_dialog 裡的 progress bar,因為 afxBeginThread(RUNTIMECLASS(...)) 建立起的 p_dialog instance 我不知道該怎麼得到,還是整個設計要換個方向想呢??
    2010年2月5日 上午 10:21

解答

  • 您可以在p_dialog的執行緒結束時送出一個訊息給p_dialog, 由p_dialog呼叫EndDialog方法, 就可以關閉p_dialog, 回到m_dialog
    2010年2月6日 上午 02:49