none
ListView更新数据屏闪 RRS feed

  • 问题

  • 我在网上搜的教程都是C#的,没有VC++的,而且我在将C#代码改为VC++代码也不行,所以请大神们赐教
    2016年11月23日 1:46

全部回复

  • Hi 求知与释疑,

    感谢在MSDN论坛发帖。

    >>我在网上搜的教程都是C#的,没有VC++的,而且我在将C#代码改为VC++代码也不行,所以请大神们赐教

    你的工程是什么类型的? 请提供一下你项目的具体信息方便我们更好的解决你的问题。

    Best Regards,

    Sera Yu


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2016年11月24日 3:26
  • 就是Visual C++ 2013创建的C++项目,然后使用的是CLR,基于.Net 4.0
    2016年11月24日 3:38
  • 一般要这样用

    ListView listView....

    listView.BeginUpdate();

    listView.增加数据项

    listView.EndUpdate();


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2016年11月29日 0:03
  • 一般要这样用

    ListView listView....

    listView.BeginUpdate();

    listView.增加数据项

    listView.EndUpdate();


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    这个是通过一次性显示解决屏闪的问题,是有效的,但是我想是动态的一条一条的添加而且不屏闪,应该怎么做呢
    2016年12月1日 8:43
  • Hi 求知与释疑,

    >>这个是通过一次性显示解决屏闪的问题,是有效的,但是我想是动态的一条一条的添加而且不屏闪,应该怎么做呢

    对于这种情况,建议你参考以下两点。

    1. 对于控件上的内容的绘制采用控件内部定义的DC。刷新和绘制都在控件内部完成,这样才能避免不用刷新太多的区域,而只刷新控件中指定的某一个区域。

    2. 重载OnEraseBkgnd函数并且不添加任何代码直接return TRUE。如果不重载OnEraseBkgnd,该函数是默认绘制白色背景的矩形框,这将造成明显的闪烁。

    希望对你有所帮助。

    Best Regards,
    Sera Yu


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2016年12月13日 9:41
  • 我还不会写重载OnEraseBkgnd函数,你能帮我写一下吗,谢谢
    2016年12月20日 9:00
  • Hi 求知与释疑,

    >>我还不会写重载OnEraseBkgnd函数,你能帮我写一下吗,谢谢

    在要重载的类(通常为CView的子类)声明部分(.h文件)添加虚函数的声明:

    virtual BOOL OnEraseBkgnd(CDC* pDC);

    类的定义文件(.cpp)中的MESSAFE_MAP部分,

    ON_WM_ERASEBKGND()
    BOOL CMyView::OnEraseBkgnd(CDC* pDC)
    {
           return TRUE;
    }

    这里有篇文档,你可以参考一下。

    http://blog.csdn.net/rushkid02/article/details/9733117

    希望可以帮助到你。

    Best Regards,

    Sera Yu


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    • 已建议为答案 Baron Bi 2016年12月30日 2:27
    2016年12月30日 2:27
  • 我发现我还是不会写,能给我一个demo吗
    2017年3月5日 12:29