能给个例子吗?拜托多谢!!!!!my email : [email protected]

解决方案 »

  1.   

    应该自画ListItem吧。
    设置LVS_OWNERDRAWFIXED属性,然后重载DrawItem函数就可以用DRAWITEMSTRUCT结构中的hdc输出需要的字体与颜色了。
    你搜索一下,应该有这方面的贴子。
      

  2.   

    完成这个任务要注意几点:
    1.对于ListView(也就是ListCtrl),只有置为"Report"显示方式才可以进行自绘
      (当然,对于所有的窗口控件都可以直接得到其dc并在OnPaint()中绘制,但
        这不是个好主意,特别是需要自己丈量尺寸的情况下)
    2.要把ListView设置成Owner draw fixed,或者在初始化时向ListView控件发送
      LVS_OWNERDRAWFIXED消息
      (以上两步都可以在设计对话框时通过属性对话框来设置)
    3.重载DrawItem()函数,在其中进行绘制工作
      剩下的事就好办了,只要在DrawItem的参数lpDrawItemStruct中得到各个绘制
      用的属性,按照你的要求画成了,对于设置字体和颜色并不是困难的事
      

  3.   

    对于字体,你可以用CreateFontIndirect或CreateFont创建,也可以
    用GetFont得到对话框的字体,并选进ListView的dc中,如果要改变
    字体的大小恐怕只有用CreateFontIndirect或CreateFont了,如果
    用DrawText虽然可以控制字符串的尺寸,但不能改变其字体,画出来
    不太好看
      

  4.   

    vonvon,您好。
         我的程序是一个单文档的有两个切分视的的界面,第一个是从 CListView 类继承,第二个是从 CView 类继承的,重载DrawItem()函数好像要在CListCtrl的派生类中进行,请问我的ClistView派生类如何才能重载DrawItem()函数呢?
      

  5.   

    到 CodeGuru看看,肯定有!!!!我好象看见过。即使没有也有类似的,仿照着自己写吧,不能什么都用别人的呀!
      

  6.   

    你不妨看一看msdn中关于CListView的说明,它只不过给CListCtrl加了个外壳,
    让它带有view的一些特性,如果你不需要使用这些特性的话,不如直接从CListCtrl
    派生一个新类,用在你的切分窗口中
      

  7.   

    哈,多谢了,真复杂,不过我已经解决了,再次表示感谢!
    我今天下午在网上又找到了一份资料,它是用 NM_CUSTOMDRAW 消息函数来实现字体颜色的改变,我觉得比用DrawItem()好,所以就OK啦,哈哈哈哈哈