wantfly

改进软件质量
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

WTL中CListViewCtrl中LVS_ICON和LVS_REPORT模式的不同

Posted on 2011-07-27 20:41  想飞  阅读(2256)  评论(0编辑  收藏  举报

LVS_SINGLESELCListViewCtrl的风格: 

LVS_ICON: 为每个item显示大图标

LVS_SMALLICON: 为每个item显示小图标

LVS_LIST: 显示一列带有小图标的item

LVS_REPORT: 显示item详细资料

直观的理解:windows资源管理器,“查看”标签下的“大图标,小图标,列表,详细资料” 

应用LVS_REPORT模式:

m_AttachList.Create( this->m_hWND, 
NULL, NULL, 
WS_CLIPCHILDREN | WS_CHILD | LVS_REPORT | LVS_SINGLESEL  , 

0, IDB_HOME_ATTACH_LISTVIEW, NULL); 

应用LVS_ICON模式: 

m_ListIcon.Create( GetViewHWND(), 

NULL, NULL, 
WS_VISIBLE |WS_BORDER| WS_CHILD | LVS_ICON   , 
0, IDC_SELECT_ICON_LIST, NULL);
ATLASSERT(m_pImageList != NULL);
ATLASSERT(m_uNumIcons != 0);
//LVS_REPORT LVS_ICON
LONG lStyle;
lStyle = ::GetWindowLong(m_ListIcon.m_hWnd, GWL_STYLE);  //获取当前窗口类型
lStyle &= ~LVS_TYPEMASK;   //清除显示方式位
lStyle |= LVS_SMALLICON;   //设置显示方式
 
::SetWindowLong(m_ListIcon.m_hWnd, GWL_STYLE, lStyle);  //设置窗口类型
m_uNumIcons = m_pImageList->GetImageCount();
m_ListIcon.SetImageList(m_pImageList->m_hImageList, LVSIL_SMALL);

需要注意的是:LVS_ICON模式需要指定WS_VISIBLE式样,并且不能和

 LVS_SINGLESEL一起用。

同时需要清除显示方式位才能正常显示。

记录于此!