- 浏览: 73386 次
- 性别:
- 来自: 上海
文章分类
最新评论
创建CListCtrl中的排序小图标
for(int i = 0; i < GetHeaderCtrl()->GetItemCount(); ++i)
{
HDITEM hditem = {0};
hditem.mask = HDI_BITMAP | HDI_FORMAT;
VERIFY( GetHeaderCtrl()->GetItem( i, &hditem ) );
if (hditem.fmt & HDF_BITMAP && hditem.fmt & HDF_BITMAP_ON_RIGHT)
{
if (hditem.hbm)
{
VERIFY( DeleteObject(hditem.hbm) );
hditem.hbm = NULL;
}
hditem.fmt &= ~(HDF_BITMAP|HDF_BITMAP_ON_RIGHT);
VERIFY( CListCtrl::GetHeaderCtrl()->SetItem( i, &hditem ) );
}
if (i == nCol)
{
hditem.fmt |= HDF_BITMAP|HDF_BITMAP_ON_RIGHT;
//UINT bitmapID = m_Ascending ? IDB_DOWNARROW : IDB_UPARROW;
//hditem.hbm = (HBITMAP)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(bitmapID), IMAGE_BITMAP, 0,0, LR_LOADMAP3DCOLORS);
hditem.hbm = CreateSortBitmap(bAscending);
VERIFY( hditem.hbm!=NULL );
VERIFY( CListCtrl::GetHeaderCtrl()->SetItem( i, &hditem ) );
}
HBITMAP CreateSortBitmap(bool bAscending)
{
// Aquire the Display DC
CDC* pDC = CDC::FromHandle(::GetDC(::GetDesktopWindow()));
//create a memory dc
CDC memDC;
memDC.CreateCompatibleDC(pDC);
//Create a memory bitmap
CBitmap newbmp;
CRect iconRect(0, 0, 16, 16);
newbmp.CreateCompatibleBitmap(pDC, iconRect.Height(), iconRect.Width());
//create a black brush
CBrush brush;
brush.CreateSolidBrush(RGB(0, 0, 0));
//select the bitmap in the memory dc
CBitmap *pOldBitmap = memDC.SelectObject(&newbmp);
//make the bitmap white to begin with
memDC.FillSolidRect(iconRect.top,iconRect.left,iconRect.bottom,iconRect.right,::GetSysColor(COLOR_3DFACE));
//draw a rectangle using the brush
CBrush *pOldBrush = memDC.SelectObject(&brush);
if (bAscending)
{
// Arrow pointing up
CPoint Pt[3];
Pt[0] = CPoint(7, 5); // Top
Pt[1] = CPoint(4, 8); // Left
Pt[2] = CPoint(10, 8); // Right
memDC.Polygon(Pt, 3);
}
else
{
// Arrow pointing down
CPoint Pt[3];
Pt[0] = CPoint(10, 6); // Right
Pt[1] = CPoint(4, 6); // Left
Pt[2] = CPoint(7, 9); // Bottom
memDC.Polygon(Pt, 3);
}
memDC.SelectObject(pOldBrush);
//select old bitmap back into the memory dc
memDC.SelectObject(pOldBitmap);
return (HBITMAP)newbmp.Detach();
}
发表评论
-
自己写的一段customerDraw
2010-08-24 16:20 1891void CNewReportPage::OnNMCustom ... -
帖BitMap
2010-08-24 09:42 788void CEx_14View::O ... -
clistctrl +号按钮绘制
2010-08-11 17:18 1577网上有关clistctrl举不胜举,包括按钮控件的绘 ... -
listctrl总结2
2010-08-11 17:11 98820. listctrl的subitem添加图标 ... -
VC中使用ListCtrl经验总结(1)
2010-08-11 17:07 1325ListCtrl在工作中,常常用到,也常常看到大家发帖问怎么用 ... -
LV_COLUMN结构体
2010-08-10 14:44 2705typedef struct _LV_COLUMN {UINT ... -
加载位图BITMAP
2010-08-10 14:27 1455m_Bitmap.LoadBitmap(IDB_BITMAP1 ... -
关于控件重绘函数/消息 OnPaint,OnDraw,OnDrawItem,DrawItem的区别
2010-08-10 13:15 6447而OnPaint()是CWnd的类成员,同时负责响应WM_ ... -
listctrl 重绘
2010-08-10 10:15 1051common control 4.7版本介绍 ... -
OnCreate PreCreateWindow PreSubclassWindow
2010-08-09 17:47 1776OnCreate PreCreateWindow PreSub ... -
扩展CListCtrl实现颜色长度改变
2010-08-09 17:34 3222用CListCtrl来显示数据比较方便,有时候我们需要标注某一 ... -
CListCtrl控件的使用
2010-08-09 17:02 1202初始化: DWORD dwStyle; dwStyle = m ... -
改变 CListCtrl、CHeaderCtrl 高度、字体、颜色和背景
2010-08-09 16:49 2678改变 CListCtrl、CHeaderCtrl 高度、字体、 ... -
CHeaderCtrl用法
2010-08-09 15:47 4255CListCtrl的表头可以单独 ... -
CListCtrl::SortItems的用法:
2010-08-09 12:37 2007CListCtrl::SortItems的用法: (一)So ... -
树型视的三个结构TVINSERTSTRUCT、TVITEM、NMTREEVIEW
2010-08-05 18:11 992TVINSERTSTRUCT包含添加新项到树形视控件所使用的信 ... -
剪贴板和OLE拖放
2010-08-05 16:35 1152一、传统剪贴板 ... -
文档/视图结构中的各个部分是如何联系到一起的
2010-08-05 15:39 758文档/视图结构是MFC中最有特色而又有难度的部分,在这当中涉及 ... -
MFC一些函数区别
2010-08-05 13:43 1667GetMessagePos GetCursorPos的区别 ... -
LPTSTR、LPCSTR、LPCTSTR、LPSTR的意义
2010-08-05 13:33 1032UNICODE:它是用两个字节 ...
相关推荐
在图标视图中,每个列表项会以大图标或小图标的形式显示,通常还会伴随一个简短的文本标签。这种模式适用于展示项目,比如文件和文件夹,因为它们可以直观地表示文件的类型。实现这个模式,你需要设置CListCtrl的...
- 列表视图可以有多种视图模式,如报告视图、小图标视图、大图标视图和详细信息视图。在本例中,我们主要关注报告视图,因为它适合展示多列数据。 2. **排序功能** - CListCtrl本身并不支持排序,但可以通过重载...
3. **图标管理**:使用`SetImageList`可以设置小图标或大图标,用于显示项的图标。 4. **状态栏操作**:CListCtrl支持选中、选区、排序等功能,例如`SetItemState`可以改变项的状态,`SetSortIcon`设置排序图标。 ...
CListCtrl是MFC库中一个非常重要的控件,它用于在窗口中显示一系列项,这些项可以以图标、小图标、列表或详细信息视图的形式呈现。在Visual C++ 6.0版本中,CListCtrl是开发人员常用的一个组件,用于创建类似资源...
在MFC应用中,你可以通过在对话框类的资源编辑器中添加列表视图控件,并在代码中声明一个CListCtrl类型的成员变量来创建CListCtrl。初始化通常在 OnInitDialog 函数中完成,包括设置控件样式、添加列以及设置初始...
这个控件可以显示多列数据,并支持多种视图模式,如报告视图、小图标视图和大图标视图等。通过CListCtrl,开发者可以方便地实现数据的分组、排序、过滤等功能。 二、CListCtrl的列头与HeaderCtrl 列头在报告视图中...
它支持多种视图模式,如报告视图、小图标视图和大图标视图等。在报告视图中,用户可以方便地查看和管理大量结构化的信息。 二、插入和删除项 要向CListCtrl中添加项,可以使用InsertItem函数,指定项的索引位置和...
CListCtrl是基于Windows API中的LISTVIEW控件的封装,提供了多种视图模式,如报告视图、小图标视图和大图标视图等。在报告视图中,CListCtrl可以显示多列数据,适合用于表格样式的数据显示。在派生CListCtrl类时,...
在创建CListCtrl对象时,通常需要在对话框或视图类的初始化函数中调用Create方法来实例化控件,并指定其风格,例如LVS_REPORT用于报告视图,LVS_OWNERDATA表示列表的数据由控件的父窗口提供。 接下来,我们关注如何...
`CListCtrl`是MFC(Microsoft Foundation Classes)框架中用于创建列表视图控件的类,它在Windows操作系统中广泛用于显示数据项列表。在这个特定的案例中,我们讨论的是一个扩展了`CListCtrl`功能的自定义类,增加了...
CListCtrl是MFC(Microsoft Foundation Classes)框架中用于创建列表视图控件的一个类,它是Windows API中的ListView控制的封装。本篇文章将深入探讨CListCtrl的使用,包括其基本概念、功能特性、创建与初始化、数据...
在Windows编程中,CListCtrl是MFC(Microsoft Foundation Classes)库中用于创建类似Windows资源管理器中的列表视图控件的类。这篇文档“CListCtrl使用大全.doc”主要涵盖了CListCtrl的使用方法,包括风格设置、插入...
它可以显示多列数据,并支持各种视图模式,如报告视图、小图标视图、大图标视图和详细信息视图。通过CListCtrl,开发者可以添加、删除、修改列表项,设置和获取列头,以及进行排序和选择操作。 二、CListCtrl的预览...
2. **多种视图模式**:支持图标视图、列表视图、详细信息视图和小图标视图,适应不同的展示需求。 3. **条目操作**:添加、删除、修改和选择列表项,以及处理条目的双击事件等。 4. **图像列表**:可以关联图像...
首先,CListCtrl控件提供了多种视图模式,包括图标(ICON)模式、报告(Report)模式、小图标(SMALLICON)模式等。其中,Report模式通常用于展示多列数据,每行数据包含多个字段,非常适合用于表格形式的数据展示。...
2. **设置视图样式**:CListCtrl支持多种视图模式,如报告视图、小图标视图、大图标视图和列表视图。你可以使用SetView()函数来选择视图模式。 3. **插入列**:使用InsertColumn()函数添加列,每个列有标题和宽度。...
2. 小图标方式(LVS_SMALLICON) 3. 列表显示方式(LVS_LIST) 4. 详细资料显示方式(LVS_REPORT) CLISTCTRL控件的对象结构包括: 1. 列表控制的建立方法 2. 列表控制的属性类 3. 列表控制的操作方法 列表控制的...
这个控件支持多种视图模式,如报告视图、小图标视图、大图标视图等,但最常用的是报告视图,因为它能够展示多列数据并支持列头排序。 创建`CListCtrl`的第一步是定义一个`CListCtrl`成员变量在你的类中,然后在...
CListCtrl提供了多种显示模式,包括图标、列表、详细信息和小图标,使得用户可以方便地查看和操作数据。在本教程中,我们将深入探讨`CListCtrl`及其在MFC应用中的使用。 首先,`CListCtrl`是`CWnd`的派生类,因此它...
在Windows应用程序开发中,CListCtrl常用于显示数据列表,支持多种视图模式,如报告视图、小图标视图、大图标视图和详细信息视图等。CListCtrl控件不仅提供了数据的可视化展示,还支持用户交互,如选择、排序、分页...