none
NM_CUSTOMDRAW 改变listctrl的行高 RRS feed

  • 问题

  •        我知道owerdraw可以调用measureitem改变行高,但是owerdraw和custromdraw好像不能共存吧??在customdraw的情况下,怎么改变listctrl控件每一行的行高呢。

    期待版主的英明回答啊。谢谢。

    2012年4月10日 3:06

答案

    • Modify the style of the list control to "owner draw fixed" (LVS_OWNERDRAWFIXED).
    • Overload CListCtrlEx::DrawItem().
    • A WM_MEASUREITEM
      ---------------------------------------------------------------------------------------------------------
      NM_CUSTROMDRAW好像修改不了行高,您还是重写CListCtrl类吧

    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    • 已标记为答案 Helen Zhao 2012年4月17日 2:05
    2012年4月13日 2:09
    版主

全部回复

  • http://www.codeproject.com/Articles/1401/Changing-Row-Height-in-an-owner-drawn-Control


    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    2012年4月11日 2:09
    版主
  • thanks very much.

    这篇文章我看了,但是它实现行高改变的前提条件是控件具有owerdrawfixed属性,而我的没有添加ownerdrawfixed属性,而是使用customdraw进行绘制的,ownerdrawfixed和customdraw是不能同时存在的吧(我试了不行)。所以,问题还没有解决:如何在customdraw情况下,接收到MEASUREITEM消息?

    2012年4月11日 3:31
  • 改用Qt吧,呵呵,MFC就是浪费时间

    0xBAADF00D

    2012年4月12日 16:16
    版主
    • Modify the style of the list control to "owner draw fixed" (LVS_OWNERDRAWFIXED).
    • Overload CListCtrlEx::DrawItem().
    • A WM_MEASUREITEM
      ---------------------------------------------------------------------------------------------------------
      NM_CUSTROMDRAW好像修改不了行高,您还是重写CListCtrl类吧

    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    • 已标记为答案 Helen Zhao 2012年4月17日 2:05
    2012年4月13日 2:09
    版主