请问一下关于list control网格显示不刷新的有关问题

请教一下关于list control网格显示不刷新的问题
我的list control设置如下,当list control有滚动条时,我使用滚动条的上下按键时会出现网格没有画出来的情况,我在BeginScroll里面使用m_list.RedrawItems(-1, m_list.GetItemCount());可以解决这个问题,但是会刷新的厉害,请教一下大家有没有遇到这样的问题,谢谢了


 LONG lStyle;
 lStyle = GetWindowLong(m_list.m_hWnd, GWL_STYLE);//获取当前窗口style
 lStyle &= ~LVS_TYPEMASK; //清除显示方式位
 lStyle |= LVS_REPORT; //设置style
 SetWindowLong(m_list.m_hWnd, GWL_STYLE, lStyle);//设置style

 m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT|
LVS_EX_HEADERDRAGDROP|LVS_EX_GRIDLINES|LVS_EX_FLATSB);



void MemberManagerDlg::OnLvnBeginScrollList1(NMHDR *pNMHDR, LRESULT *pResult)
{
// 此功能要求 Internet Explorer 5.5 或更高版本。
// 符号 _WIN32_IE 必须是 >= 0x0560。
LPNMLVSCROLL pStateChanged = reinterpret_cast<LPNMLVSCROLL>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码

m_list.RedrawItems(-1, m_list.GetItemCount());
*pResult = 0;
}


我在网上找到同样问这个问题的帖子,一样没有答案
http://bbs.csdn.net/topics/100141104

------解决方案--------------------
引用:
我的list control设置如下,当list control有滚动条时,我使用滚动条的上下按键时会出现网格没有画出来的情况,我在BeginScroll里面使用m_list.RedrawItems(-1, m_list.GetItemCount());可以解决这个问题,但是会刷新的厉害,请教一下大家有没有遇到这样的问题,谢谢了


 LONG lStyle;
 lStyle = GetWindowLong(m_list.m_hWnd, GWL_STYLE);//获取当前窗口style
 lStyle &= ~LVS_TYPEMASK; //清除显示方式位
 lStyle 
------解决方案--------------------
= LVS_REPORT; //设置style
 SetWindowLong(m_list.m_hWnd, GWL_STYLE, lStyle);//设置style

 m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT
------解决方案--------------------

LVS_EX_HEADERDRAGDROP
------解决方案--------------------
LVS_EX_GRIDLINES
------解决方案--------------------
LVS_EX_FLATSB);



void MemberManagerDlg::OnLvnBeginScrollList1(NMHDR *pNMHDR, LRESULT *pResult)
{
// 此功能要求 Internet Explorer 5.5 或更高版本。
// 符号 _WIN32_IE 必须是 >= 0x0560。
LPNMLVSCROLL pStateChanged = reinterpret_cast<LPNMLVSCROLL>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码

m_list.RedrawItems(-1, m_list.GetItemCount());
*pResult = 0;
}


我在网上找到同样问这个问题的帖子,一样没有答案
http://bbs.csdn.net/topics/100141104


真没遇到过这种问题,如果通过刷新可以消除这种现象,那你就在DrawItem()函数中自己绘制,通过双缓冲避免闪屏。