树和列表

CTreeCtrl


Create( WS_Child | Visible | TVS_外观\消息\展开\选择\编辑 , CRect, Parent, IID ); —冲突— DDX_Control(IID, m);
ShowWindow( SW_Show\Normal\Minized );

  

外观:
Indent   ItemHeigh(也就包括了文字宽)   TextColor   bkColor   ImageList

  
元素操作:
InsertItem(-, 0, 1, Parent, Prev);
Delete(-);     DeleteAll();
元素查找:
  SelectItem FirstVisible RootItem(多个root) 

          |
          |
          |                    HTreeItem
查找:        |
          |   Parent
          |   |
(Prev)<—— GetNextItem(-, TVGN) ——> (Next)
           | 
       (Child) —>

属性
SetItem(-, TVIF);
SetItemState(-, TVIS \ 0, 掩码select、expand、bold、dropdrag ); Text(""); Image(-,0,1); Data(lParam); Rect(rect);
动作
Expand(-,展开\收缩\部分);  Select(-,选中\拖放\滚动);  Check(bool);   EditLabel();

  

  
CListCtrl


Create( WS | LVS_IconSmallListReport\对齐\排序\单选\编辑 , CRect, Parent, IID );
 LONG = GetWindowLong( hWnd, GWL_STYLE);
 style &= ~LVS_TYPEMASK; //清除原显示位      style |= LVS_REPORT; 
 SetWindowLong( hWnd, GWL_STYLE, style ); //设置style

SetExtendedStyle(GetExtendedStyle() | LVS_EX_选中整行、网格线、Checkbox); 

    

外观:
ImageList TextColor TextBkColor  bkColor  ColumnWidth(列号, -)  宽高在列行里设

  
元素操作:
InsertColumn( 列id, "", LVCFMT_Left, Width );    DeleteColumn ( 列号 ); //列会依次向上移动
InsertItem( 行id, "", ImageList-id );   DeleteItem( 行号 ); //依次向上移动
DeleteAllItems();

查找:
GetItemCount();  遍历:GetItemState(++i , LVIS_SELECTED );
GetHeaderCtrl()->GetItemCount();

while(pos = GetFirstSeletedItemPosition())
  GetNextSeletedItem(pos);

  

lvItem

属性:
lvColumn.mask(LVCF) + 接收数据空间
Set \ GetColumn(0, &lvColumn );  

GetItem(lvItem.LVIF);
SetItemText( 行号,列号, "" );   Data(行号, lParam);   State(行号, LVIS\0, 掩码select、focus、dropdrag );

动作:
SetCheck(行号,bool);   Scroll(CSize);

HitTest:
lvHitTestInfo.pt;flags = LVHT_Above;
SubItemHitTest( &lvHitTestInfo ){ GetItemRect(); }
lvHitTestInfo.iItem\iSubItem

HitTest( pt, &nFlag );  nFlag == LVHT_OnItem\Icon\StateIcon
 

 

 

大数据量更新时,避免闪烁

SetRedraw(FALSE);
//更新内容
SetRedraw(TRUE);
Invalidate();
UpdateWindow();

 

posted on 2011-05-27 09:36  cvbnm  阅读(299)  评论(0)    收藏  举报

导航