1. 程式人生 > >MFC中多文件ActiveX建立子視窗

MFC中多文件ActiveX建立子視窗

               最近做了一個ActiveX控制元件 , 用於同時開啟多個文件. 並提供了一個介面: OpenDocument( filename) 供外部程式呼叫;

               在應用程式中, 建立一個Dialog的對話方塊, 並加入了這個ActiveX.  然後啟動一個執行緒定時掃描資料夾, 並呼叫OpenDocument介面在ActiveX中開啟.  然而, 發現Activex在建立子視窗時, 始終失敗,經過除錯發現是SendMessage( ..WM_MDICREATE ..)時建立失敗,初步估計是傳送訊息後, 無法獲取頂層的父視窗(Dialog)的控制代碼.

              現在的方案是使用訊息機制, 當線上程中掃描到檔案時, 加入到一個檔案列表中, 併發送一訊息. 而在訊息處理函式中, 則呼叫ActiveX的OpenDocument開啟檔案.

             經過討論,覺得有可能是因為工作執行緒和GUI執行緒之間的區別導致的.