ListCtrl的属性面板上有个选项 Owner Data属性,在程序中能随时加上或去掉这个属性么?

解决方案 »

  1.   

    LVS_OWNERDRAWFIXED ModifyStyle/ModifyStyleEx
      

  2.   

    可以动态设置么?
    重新create吧
      

  3.   

    http://www.codeguru.com/Cpp/controls/listview/dragdrop/article.php/c1051/m_ListControl.ModifyStyle(LVS_OWNERDRAWFIXED, 0);immediately before the call to CreateDragImage to disable owner draw, and the line m_ListControl.ModifyStyle(0, LVS_OWNERDRAWFIXED);right after the call to CreateDragImage to reinstate owner draw after the drag image is created.
      

  4.   

    LVS_OWNERDRAWFIXED 
    对应的是属性选项板上的 Owner draw fixed选项。
    难道跟Owner Data是一样的?
    俺试过,不成的说。
    而且,就想动态设置.....
      

  5.   

    你把钩打上,再用文本方式打开RC文件,找到那个控件,看一下就知道多了什么属性,再通过SetWindowLong或者ModifyStyle设置属性上去
      

  6.   

    LVS_OWNERDRAWFIXED 
    动态 ModifyStyle 啊
    Aa
      

  7.   

    打开RC文件 可以看到 Owner Data 对应的就是 LVS_OWNERDATA 了。
    问题是通过 m_ListControl.ModifyStyle(0, LVS_OWNERDATA);
    加上这个 LVS_OWNERDATA 后
    再 m_ListControl.SetItemCountEx(nCount),会在该句出现错误。出错: ASSERT(dwFlags == 0 || (GetStyle() & LVS_OWNERDATA));按说ModifyStyle已经把LVS_OWNERDATA属性给加上去了的。
    难道非要重新create()?从这个错误提示看即便重新create也不见得就是可以的。嘎嘎~~~
      

  8.   

    事实证明,重新create()是没有问题的。
    但是字体变得细细怪怪的。不知何因。
    另外,还是在想能否不重新创建就能随时更改这些个属性呢??
      

  9.   

    CWindow myWindow;
    myWindow.Attach(hWndFoo);// The following line removes WS_EX_CONTEXTHELP extended style from 
    // the window and adds WS_EX_TOOLWINDOW extended style to the window.myWindow.ModifyStyleEx(WS_EX_CONTEXTHELP,WS_EX_TOOLWINDOW);
    同意1楼的。
      

  10.   

    来来来,结铁结贴
    我想要的目的已经达到
    但是ModifyStyle/ModifyStyleEx没看出效果
    迷惑ing....
      

  11.   

    LVS_OWNERDATA是做虚拟列表用的;LVS_OWNERDRAWFIXED是自绘控件用的,楼上误导。