- 浏览: 73391 次
- 性别:
- 来自: 上海
文章分类
最新评论
网上有关clistctrl举不胜举,包括按钮控件的绘制也很多,但我用的时候找了好久没发现适合我用的。在这里我想介绍一种很简洁的+、-号按钮绘制的方法,实现后类似于tree中的+、-号收缩功能。以便同行以后有需要可以直接搬走使用。 依附点:clistctrl用的最多的setitemdata,setitemtext,可以记录一些信息,但这里通过setitemstate来记录与修改图标的状态,从而实现+、-号的按钮。 问题:你可能说为什么不绘制一个+号按钮呢?红色部分代码是绘制了一个+号按钮,但很难看,另外你单击时候还要改变成-号,这可能也许能实现,但我想其中你做的这些工作的时间足够你用这种方法做了好几遍了。 1.说是按钮,其实这里采用了图标的方式,你可以用vc自带的工具,也可以用ARTICONS工具,首先绘制两个图标,+、-号.INDEXTOSTATEIMAGEMASK这个宏来把你图标的索引号 进行转变。 2.在inidlg函数中创建图表,并保存+、-号图标。贴代码 BOOL CTest_listcheckDlg::OnInitDialog() // Set the icon for this dialog. The framework does this automatically m_list.SetImageList(m_pImageLarge, LVSIL_SMALL); int i=0; // CRect rect; index=m_list.InsertItem(i++,"2",0); index=m_list.InsertItem(i++,"3",0); index=m_list.InsertItem(i++,"4",0); index=m_list.InsertItem(i++,"5",-1);
return TRUE; // return TRUE unless you set the focus to a control 3.单击+、-号的分别处理消息,单击+号则插入你需要的记录,单击-号则删除下面的记录,贴代码: void CTest_listcheckDlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) 希望对项目紧又没时间研究的人给予 一定的帮助。 |
发表评论
-
自己写的一段customerDraw
2010-08-24 16:20 1891void CNewReportPage::OnNMCustom ... -
帖BitMap
2010-08-24 09:42 789void CEx_14View::O ... -
listctrl总结2
2010-08-11 17:11 98920. 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 6448而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:11 2317创建CListCtrl中的排序小图标 for(int i = ... -
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 4256CListCtrl的表头可以单独 ... -
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`中添加按钮通常涉及自定义绘制,因为标准的`CListCtrl`不支持直接插入控件如按钮。【标签】"CListCtrl插入按钮"和"CListCtrl自绘按钮"强调了这个过程的核心:自定义绘制技术。以下是实现这个功能的关键...
在Windows编程领域,CLISTCTRL是MFC(Microsoft Foundation Classes)库中用于创建列表视图控件的一个类...开发者通过扩展CLISTCTRL的功能,实现了按钮的绘制、事件处理和状态管理,从而提供了更丰富的界面和用户体验。
本篇文章将深入探讨CListCtrl的重绘技术以及如何在其中内嵌按钮等控件。 CListCtrl的重绘是一个关键功能,允许开发者自定义控件的外观和行为。通常,重绘涉及到覆盖CListCtrl的默认OnDrawItem、OnMeasureItem和...
本项目“CListCtrl简单自绘并在每行动态生成按钮_vc6.0”是基于MFC的一个实例,涉及到的核心知识点包括CListCtrl控件的使用、自定义绘制以及动态生成按钮。 CListCtrl是MFC中的一个视图类,它是Windows的ListView...
- 使用InsertItem、SetItemData等函数添加组合框项,然后在CListCtrl的OnMeasureItem和OnDrawItem回调中绘制组合框。 5. **事件处理与交互** - 为了响应用户与嵌入控件的交互,我们需要重载CListCtrl的成员函数,...
在`OnDrawItem`中,你需要绘制按钮,而在`OnMeasureItem`中,你需要确定每个项的高度和宽度,以适应按钮的大小。 接下来,要在List Control的列中添加响应按钮事件的功能,你需要在消息映射中添加相应的入口。对于...
在MFC项目中,我们通常会在消息映射函数中处理CListCtrl的相关事件,例如在ON_BN_CLICKED消息处理函数中处理按钮点击事件,从而触发打开图片的逻辑。 文件名列表中的`testImageList`可能是用于存储和管理图片的...
同时,你需要处理`CListCtrl`的`NM_CUSTOMDRAW`通知,以在适当的位置绘制按钮。 以下是一个简单的`CListButton`实现的例子: ```cpp class CListButton : public CButton { public: // ... protected: virtual ...
- 继承自CListCtrl类,并重写必要的成员函数,如OnDrawItem()和OnMeasureItem(),以实现自定义绘制。 - 注册消息映射,处理WM_NOTIFY、WM_LBUTTONDOWN等消息,以便响应用户的交互。 - 使用MFC的消息响应机制,为...
本教程将深入探讨"CListCtrl派生类演示",着重讲解如何自定义CListCtrl以实现更丰富的功能,如修改项的背景色、文本背景色以及添加编辑、组合框和按钮功能,以及实现排序。 CListCtrl是基于Windows API中的LISTVIEW...
Owner Draw允许我们自定义控件的绘制过程,这样我们就可以在ListCtrl的某个单元格中画出一个按钮的外观,并响应用户点击。以下是一步步实现的过程: 1. **创建ListCtrl**:在你的MFC对话框或视图类中,添加一个...
在`CListCtrl`类的派生类中,我们需要添加按钮的消息映射,例如`ON_BN_CLICKED(id, memberFxn)`,其中`id`是按钮的ID,`memberFxn`是处理按钮点击事件的成员函数。在该函数中,我们可以执行按钮点击时的逻辑,如更新...
为了在CListCtrl中绘制Button,我们需要使用 CDC 类来处理绘图操作。首先,我们需要在OnDrawItem函数中,根据列表项索引绘制Button。这包括使用CBrush绘制背景,使用CFont设置文字样式,然后使用CRect定义Button的...
6. **扩展样式**:利用SetExtendedStyle()函数,可以开启诸如自定义绘制、全选按钮、分组选择等扩展样式。 **三、CListCtrl Demo的实践** "CListCtrl Demo"项目是一个实用的学习资源,它演示了如何创建一个功能...
15. **自定义绘制**:通过重写CListCtrl的OnDrawItem和OnMeasureItem函数,你可以实现自定义的列表项绘制,满足个性化需求。 16. **上下文菜单**:为CListCtrl添加右键菜单,用户可以执行更多操作。这通常通过添加...
9. **自定义绘制**:扩展的CListCtrl可能需要自定义绘制功能,以适应各种控件的显示需求。这涉及重载OnDrawItem和OnMeasureItem等函数。 10. **性能优化**:由于嵌入了更多的控件,性能可能会受到影响。开发者需要...
1. **Button**:在CListCtrl中添加Button控件需要自定义绘制列表项。你可以创建一个派生自CListCtrl的类,覆盖OnDrawItem和OnMeasureItem方法。在OnDrawItem中,使用CDC对象的DrawText或DrawBitmap方法绘制Button...