MFC中在CScrollView中添加单选按钮或复选框时,控件绘制问题
问题描述
由于在实际应用中,可能要动态添加控件数组(即控件的数量是可变的,数据改变,控件的数量要相应地改变)便需要使用CScrollView
,但是在CScrollView
中添加单选按钮或复选框时,若控件不在滚动条在初始位置时可见,而在滚动条滚动后方可见到,此时控件会绘制成一块黑色,如图所示:
解决方案
这里给出我最后使用的解决方案:将基类CScrollView
换成CFormView
(CFormView
派生自CScrollView
),同时需要在资源中添加一个对话框并将对话框的资源ID号与视图类关联(也可以将原来的代码注释掉,在对话框编辑器右键菜单中选择添加类,添加基类为CFormView
的视图类,再把代码复制到新添加的类中),可以把不需要动态创建的控件直接在对话框编辑器中编辑好(减少点代码,使用代码创建也是可以的),此时使用代码创建控件,便不会出现控件绘制成黑色矩形的情况了。