有时,CFormView会出现不显示、空白显示的问题,尤其是在View中没有可显示的控件的时候(自绘控件除外)。
这时在rc对话框资源中添加一个Button后正常显示,不过在OnSize中将新加的Button隐藏掉后问题依旧。
猜想:是不是CFormView发现没有可显示的控件的时候,就会对页面进行自动清理。解决方法:添加一个size为0的Button,可解决。
//xxx.rc
BEGIN
...
PUSHBUTTON "Hide Btn",IDC_BUTTON_HIDE,0,0,0,0
END
另外,也可以在OnPaint()中刷新(重新绘制),这种方法更好:
BEGIN_MESSAGE_MAP(CAssetsListView, CFormView)
//{{AFX_MSG_MAP(CAssetsListView)
...
ON_WM_PAINT()
...
END_MESSAGE_MAP()
...
afx_msg void OnPaint();
...
void CxxxView::OnPaint()
{
if (m_ListCtrl.GetSafeHwnd())
{
//刷新列表,防止页面空白
m_ListCtrl.RedrawWindow();
}
}