動態改變CTabCtrl上的對話框(恢復初始狀態)

MFC的上位機軟件中用的TabCtrl,上面有9個子頁面,本來是在主類中添加了9個成員變量,分別對應不同的對話框類,原始的需求中頁面不會變動,結果後來要求程序在不退出的情況下,開始新的通訊過程。根據指示進行代碼修改,一開始想把9個頁面分別進行初始化,恢復到原來的狀態,結果努力了半天后,發現按下葫蘆起來瓢,總是會有問題,乾脆停止修改,昨天晚上考慮了一夜,決定還是把子對話框重新創建比較直接,且符合常理。

然後就是按部就班的修改,萬能的Google告訴我們所有的步驟:

  1. 創建tabCtrl上的頁面時,首先需要判斷該頁面是否已經存在,如果存在則先銷燬對話框,用的是GetSafeHwnd()函數來判斷是否已經創建過該對話框;如果對話框已經存在則用DestroyWindow()銷燬。
  2. 刪除所有的Tab上的Items,並重新添加原來的items。用m_tab.DeleteAllItems();然後m_tab.InsertItem( 0, “aa”);即可。
  3. 用dialog的Create函數創建就可以了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章