1. 程式人生 > 實用技巧 >MFC中在CScrollView中新增單選按鈕或複選框時,控制元件繪製問題

MFC中在CScrollView中新增單選按鈕或複選框時,控制元件繪製問題

問題描述

由於在實際應用中,可能要動態新增控制元件陣列(即控制元件的數量是可變的,資料改變,控制元件的數量要相應地改變)便需要使用CScrollView,但是在CScrollView中新增單選按鈕或複選框時,若控制元件不在滾動條在初始位置時可見,而在滾動條滾動後方可見到,此時控制元件會繪製成一塊黑色,如圖所示:

解決方案

這裡給出我最後使用的解決方案:將基類CScrollView換成CFormViewCFormView派生自CScrollView),同時需要在資源中新增一個對話方塊並將對話方塊的資源ID號與檢視類關聯(也可以將原來的程式碼註釋掉,在對話方塊編輯器右鍵選單中選擇新增類,新增基類為CFormView

的檢視類,再把程式碼複製到新新增的類中),可以把不需要動態建立的控制元件直接在對話方塊編輯器中編輯好(減少點程式碼,使用程式碼建立也是可以的),此時使用程式碼建立控制元件,便不會出現控制元件繪製成黑色矩形的情況了。