CFormView 不显示、空白显示的问题

清泛原创

有时,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();
 	}
}

CFormView

分享到:
评论加载中,请稍后...
创APP如搭积木 - 创意无限,梦想即时!
回到顶部