VC MFC列表框(CListBox)控件

合集下载

VCMFC中的CComboBox控件使用详解

VCMFC中的CComboBox控件使用详解

VCMFC中的CComboBox控件使用详解VC/MFC中的CComboBox控件使用详解CComboBox控件详解CComboBox控件又称作组合框控件,其有三种形态可供选择,1.简单组合框(Simple)2.下拉组合框(Drop-down)3.下拉列表式组合框(Drop-down list).CComboBox控件的常用设置属性说明:type属性:里面一共有三个选项.就是其三种形式, 我们常用的是后两种形态,其区别就是Dropdown的编辑区为可编辑控件,而droplist 为静态控件.Data属性:当程序初始化的时候,下拉列表将显示其属性里面的内容,内容用分号分隔.其属性只支持后2中形式,Sort 属性:对添加到下拉列表框中的数据自动进行排序,如果你不想他改变你的显示序列,把他设置成False.控件是一个窗口.其基类是为CWnd.所以CComboBox也可以使用CWnd的一些函数,它自己的函数有30几种.我写了一个示范程序,演示了一些常用的函数,你可以参考其代码看到其功能.注:m_cbox 为CComboBox控件的关联变量,m_end为EDIT控件的关联变量1.GetCount() 函数:用以获得列表框中的选项数目. int GetCount() const;(此乃函数原型,我会列在每条的后面) 下面的例子是程序中各个按钮里面的代码int i;CString str;i=m_cbox.GetCount();str.Format ("%d",i);m_end="一共有"+str+"个数据";UpdateData(FALSE);2.GetCurSel() 函数:用以得到用户选中下拉列表框中数据的索引值.返回的值是重0开始的,如果没有选择任何选项将会返回-1 Int GetCurSel() constint i;CString str;i=m_cbox.GetCurSel ();str.Format ("%d",i+1);if (i==-1) m_end="你什么都没有选";else m_end="你选的是第"+str+"项";UpdateData(FALSE);3.SetCurSel函数:选取列表框中的一个选项,索引从0开始,-1为什么都不选.当你需要把列表框中已经选取的内容清空时就可以使用这个函数;if(m_i<3) m_cbox.SetCurSel (m_i++);//m_i为int型变量用以计数else {m_cbox.SetCurSel (-1);m_i=0;}4.SetEditSel函数:设置编辑区中蓝色选中字段的长度, BOOL SetEditSel( intnStartChar,int nEndChar ); nStartChar是起始的位置,当设置为-1时为不选择任何字段,nEndChar是结束位置.还有一个对应的函数GetEditSel是取得其位置,在此不详解.m_cbox.SetEditSel (3,5);//在编辑框中打入一串数字在按此按钮就能看到效果//其作用就是选中第3到第5个字符作为热点5.Clear() Cut() Paste() Copy() 这四个函数我放在一起说,因为他们都是针对编辑框中选定的文字进行编辑的函数,很多初学者很不明白这4个函数,使用这些函数没有作用,其实不然,这些函数对于在编辑框中的内容不进行处理,他真正处理的是你用鼠标选中的内容,对于Clear()函数很多书中解释都是有误的,很多书中对他的解释是清除当前选中的文本,我认为这样的解释是有歧异的,真正的解释是把你刚选中的文本释放掉,也就是不选,而不是把选中的删除,真正的删除选中的文本的函数是Cut(),Copy()是复制选中的文本,Paste()是粘贴到光标处.其演示就不写在程序中,有兴趣的朋友可以自己试试.6.LimitText()函数.其作用是限制在编辑框中键入的文本长度,BOOL LimitText(int nMaxChars); 当nMaxChars为0时,不是不能输入,而是长度最大化为65535字节7.GetLBText()函数.其原型为void GetLBText( int nIndex, CString&rString ).nIndex为列表框中数据的索引值,rString 为字符串,其作用就是把索引号为nIndex的数据放到rString变量中.与其对应的GetLBTextLen(intnIndex)函数就是得到索引号为nIndex中数据的长度m_cbox.GetLBT ext (2,m_end); // GetLBText按钮UpdateData(0);CString str; //GetLBTextLen按钮int i=m_cbox.GetLBTextLen (2);str.Format ("%d",i);m_end=str;UpdateData(FALSE);8.AddString() DeleteString() InsertString() ResetContent() 四个函数放在一起,他们都是针对下拉列表框的处理函数, AddString(LPCTSTR lpszString) 是在列表框的尾巴添加一条数据,参数为字符串. DeleteString(UINT nIndex)为删除指定索引为nIndex的数据. InsertString(int nIndex, LPCTSTR lpszString)在索引nIndex处插入IpszString的内容. ResetContent()是清除列表框中所有的内容.9.SetDroppedWidth(UINT nWidth) 函数.用于设定下拉列表框的最小宽度,当下拉列表框中的数据很长不能完全显示时,我们可以使用这个函数把列表框的宽度设置的大些.同样GetDroppedWidth()是返回列表框的宽度.以下为总结了各大论坛中对CCombBox控件使用的问题.并给出了正解.1.关于CComboBox在对话框中没有下拉项目的问题答: 资源编辑器中对话框中CComboBox组件的垂直范围拉大了下,就看见字体了,看到那个向下的黑箭头了吗,点他下拉,嘿嘿就这么简单.2.请问怎样能让CCombobox记住用户的输入.下次使用时还有答: 要记住用户的输入必须用到文件读写,或者把内容添加到注册表中,我会在以后给出解决办法.3. CCOMBOBOX如何使它只读,不能编辑答: 看了本文的介绍也许你现在知道了, CCOMBOBOX有三种类型的,选择你需要的吧!4. 我要让界面一显示,就能在Combo框中显示默认的数据答: 你要在OnInitDialog里面加上我上面所提到的SetCurSel()函数就行了.5. 如何把选好的内容赋给变量答: 先给CCOMBOBOX设置一个CString关联变量,再添加事件处理函数CBN_ Selchange.使用UpdateData(FALSE)就行了.6. 在CComboBox组合框中,条目的对齐方式是左对齐,能设置为对中或者右对齐吗?答: 没有直接的方法,你必须自己对齐, 比如最大长度是10int i;String.Format("%10d", i);CComboBox->AddStringVC combobox 使用大全 ---------------------------------------------------一、如何添加/删除Combo Box内容1. 在Combo Box控件属性的Data标签里面添加,一行表示Combo Box下拉列表中的一行。

MFC_基本控件使用

MFC_基本控件使用

MFC_基本控件使用MFC(Microsoft Foundation Class)是一种用于开发Windows应用程序的编程框架,它提供了一系列的类和函数,方便开发者快速地创建Windows界面和处理事件。

在MFC中,基本控件是开发应用程序的重要组成部分,它们用于显示和交互用户界面。

本文将介绍MFC中几种常用的基本控件以及它们的使用方法。

1. 按钮控件(CButton):按钮控件用于接收用户的点击操作,通常用于触发相应的事件处理函数。

创建按钮控件的方法如下:1)在资源视图中右击对应的对话框,选择“添加控件”;2)选择“按钮”并将其拖动到对话框上;3)设置按钮的属性,如ID、文本、尺寸等。

1)在资源视图中右击对应的对话框,选择“添加控件”;组合框控件允许用户从预定义的选项中进行选择,类似于下拉列表。

创建组合框控件的方法如下:1)在资源视图中右击对应的对话框,选择“添加控件”;2)选择“组合框”并将其拖动到对话框上;3)设置组合框的属性,如ID、选项列表、尺寸等。

4. 列表框控件(CListBox):列表框控件用于显示一个选项列表,并且可以支持多选。

创建列表框控件的方法如下:1)在资源视图中右击对应的对话框,选择“添加控件”;2)选择“列表框”并将其拖动到对话框上;3)设置列表框的属性,如ID、选项列表、尺寸等。

5. 树形视图控件(CTreeCtrl):树形视图控件用于显示一个层级结构的数据,类似于文件夹结构或者程序的菜单栏。

创建树形视图控件的方法如下:1)在资源视图中右击对应的对话框,选择“添加控件”;2)选择“树形视图”并将其拖动到对话框上;3)设置树形视图的属性,如ID、尺寸等;4)使用CTreeCtrl的成员函数添加、删除、修改树节点。

6. List控件(CListCtrl):1)在资源视图中右击对应的对话框,选择“添加控件”;2)选择“List控件”并将其拖动到对话框上;3)设置List控件的属性,如ID、列数、尺寸等;以上是几种常用的MFC基本控件的使用方法,通过使用这些控件,可以轻松地创建出一个功能完善、交互友好的Windows应用程序。

VC++ 列表控件(CLIST) 使用方法 (2)

VC++ 列表控件(CLIST) 使用方法 (2)
D );创建一个窗口,dwStyle中可以使用以下一些列表控件的专用风格:
LVS_ICON LVS_SMALLICON LVS_LIST LVS_REPORT 这四种风格决定控件的外观,同时只可以选择其中一种,分别对应:大图标显示,小图标显示,列表显示,详细报表显示
LVS_EDITLABELS 结点的显示字符可以被编辑,对于报表风格来讲可编辑的只为第一列。
m_list.SetItemText(0,2,&quot;Item 1_3&quot;);
m_list.SetImageList(&amp;m_listSmall,LVSIL_SMALL);//设置ImageList
m_list.InsertColumn(0,&quot;Col 1&quot;,LVCFMT_LEFT,300,0);//设置列
m_list.InsertColumn(1,&quot;Col 2&quot;,LVCFMT_LEFT,300,1);
VC++ 列表控件(CList) 使用方法 (2)
列表控件可以看作是功能增强的ListBox,它提供了四种风格,而且可以同时显示一列的多中属性值。 MFC中使用CListCtrl类来封装列表控件的各种操作。
通过调用BOOL Create( DWORD dwStyle, const RECT&amp;rect, CWnd* pParentWnd, UINT nI
如果使用其它三种风格显示而不想显示图标你可以不进行任何设置,否则需要以如下形式调用: CImageList* SetImageList( CImageList* pImageList, LVSIL_SMALL);

MFC列表控件

MFC列表控件

列表控件(CListCtrl)和列表框控件(CListBox)有一定的区别,大家不要混淆。

列表控件(List Control)用来成列地显示数据,其表项通常包括图标(Icon)和标签(Lable)两部分,它们分别提供了对数据的形象和抽象描述。

图像列表控件(CImageList)是相同大小图像的一个集合,每个集合中均以0为图像的索引序号基数,(可以把这些图标看成是以数组方式存储的),图像列表通常由大图标或位图构成,其中包含透明位图模式(实际上,所有的再一个图像列表中的图标都被存储在一个屏幕设备的位图中)。

可以利用windows API来绘制、建立和删除图像,并能实现增加、删除、替换和拖动图像邓操作。

图像列表控件提供了控制图像列表额基本方法,这些方法在Windows 95及以后版本才能实现。

该控件是不可见的,通常与其他如CListBox、CComboBox、CComboBoxEx 以及CTabCtrl一起使用,为他们提供图标资源。

CImageList& ImageList建立图像控件对象结构,Create初始化图像列表并绑定对象,图像控件的建立方法如下BOOL Create(int cx,int cy,UINT nFlags,int nInitial,int nGrow);BOOL Create(UINT nBitmapID,int cx,int nGrow,COLORREF crMask);BOOL Create(LPCTSTR lpszBitmapID,int cx,int nGrow,COLORREF crMask);BOOL Create(CImageList& imageList1,int nImage1,CImageList& imagelist2,int nImage2,int dx,int dy);其中各项参数的含义为:cx定义图像的宽度,单位为像素;cy定义图像的高度,单位为像素;nFlags确定建立图像列表的类型,可以是以下值的组合:ILC_COLOR、ILC_COLOR4、ILC_COLOR8、ILC_COLOR16、ILC_COLOR24、ILC_COLOR32、ILC_COLORDDB和ILS_MASK;nInitial用来确定图像列表包含的图像;nGrow 用来确定图像列表可控制的图像数量。

mfcvslistboxcontrol控件用法 -回复

mfcvslistboxcontrol控件用法 -回复

mfcvslistboxcontrol控件用法-回复MFC (Microsoft Foundation Class)是微软的一套C++类库,用于开发Windows操作系统上的应用程序。

在MFC中,提供了一系列的控件供开发者使用,其中包括了List Box控件。

List Box控件是用于显示一组选项的窗口控件,用户可以从中选择一个或多个选项。

它常用于列表选择界面,例如选择用户的偏好设置、选择文件、选择项目等。

在本文中,我们将详细介绍MFC中的List Box控件的用法,以帮助开发者了解如何创建、添加选项、获取选择结果等。

第一步:创建List Box控件在MFC应用程序中,可以通过对话框设计器来创建List Box控件。

打开对话框设计器后,可以在工具箱中找到List Box控件,将其拖放到对话框上。

第二步:设置List Box属性选中List Box控件后,可以进行一些属性的设置,如修改控件名称,调整位置和大小等。

可以通过双击控件来打开属性窗口,设置更多属性。

第三步:添加选项在List Box控件上右键单击,选择Properties可以打开属性窗口。

在属性窗口中,可以输入选项的名称,然后点击“添加”按钮将选项添加到List Box中。

可以重复该步骤来添加多个选项。

第四步:获取选择结果当用户选择了一个或多个选项后,可以通过代码来获取选择的结果。

在MFC中,可以通过CListBox类来操作List Box控件。

可以在对话框所属的类中声明一个CListBox类型的变量,并在DoDataExchange函数中进行绑定。

接下来,可以通过CListBox的相关函数来获取选择的结果。

例如,可以使用GetCurSel函数来获取当前选中项的索引值,或使用GetText函数来获取选中项的文本内容。

第五步:处理选中项的操作在有些场景下,可能需要对选中的项进行一些操作,例如删除、移动等。

MFC提供了一系列的函数来方便对List Box控件中的选项进行操作。

MFC列表控件CListCtrl使用方法示范

MFC列表控件CListCtrl使用方法示范

MFC列表控件CListCtrl使⽤⽅法⽰范CListCtrl 获取选中的某⼀⾏POSITION ps = m_list.GetFirstSelectedItemPosition();int nSel = m_list.GetNextSelectedItem(ps);//选中的哪⾏的索引(based 0)// 或if(m_list.GetSelectedCount() <1)return;int nSel = m_list.GetSelectionMark();CListCtrl控件失去焦点时仍保持⾼亮1. 头⽂件中添加变量m_nSelItemint m_nSelItem;2. 为ListCtrl控件添加NM_KILLFOCUS(失去焦点)和NM_SETFOCUS(得到焦点)消息⼿动添加代码如下:头⽂件中添加声明afx_msg void OnNMKillfocusList(NMHDR *pNMHDR, LRESULT *pResult);afx_msg void OnNMSetfocusList(NMHDR *pNMHDR, LRESULT *pResult);源⽂件中添加映射ON_NOTIFY(NM_KILLFOCUS, IDC_LISTCTRL, OnNMKillfocusList)ON_NOTIFY(NM_SETFOCUS, IDC_LISTCTRL, OnNMSetfocusList)源⽂件中添加函数void CPageListView::OnNMKillfocusList(NMHDR *pNMHDR, LRESULT *pResult){// TODO: 在此添加控件通知处理程序代码m_nSelItem = m_ListCtrl.GetSelectionMark();m_ListCtrl.SetItemState(m_nSelItem, LVIS_DROPHILITED, LVIS_DROPHILITED);*pResult = 0;}void CPageListView::OnNMSetfocusList(NMHDR *pNMHDR, LRESULT *pResult){// TODO: 在此添加控件通知处理程序代码m_ListCtrl.SetItemState(m_nSelItem, FALSE, LVIF_STATE);*pResult = 0;}注意:Always Show Selection属性⼀定要设为FALSE以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

MFC各种控件属性介绍

MFC各种控件属性介绍

MFC各种控件属性介绍VC++6.0控件工具箱:2 图形控件(picture):常用于显示位图(Bitmap)和图标(Icon)3 静态文本(Static Text):用来在指定的位置显示特定的字符串,一般用来标识附近另一个控件的内容。

显示在静态文本控件中的字符串一般不再改变,但是在需要的时候,也可以通过调用相应的函数来进行设置。

MFC提供了CStatic类支持静态控件。

4 编辑框(Edit Box):用来接收用户输入的字符串。

通过选择编辑框的选项,编辑框可以接收字符串、数字、密码等;编辑框还可以设置成接收多行字符串的模式;可以自动进行大小写转换。

编辑框可能向其父窗口发送多种控件通知,如果用户需要,可以对这些控件通知进行处理。

MFC提供了CEdit类支持编辑框控件。

5 组成框(Group Box):用来包围具有逻辑关系的一组控件,在这些控件的周围加上边界和标题。

需注意的是,组成框仅仅是在视觉效果上对控件进行“成组”,真正的“成组”工作还需要另外一些工作。

6 按钮(Button):用来接收用户的命令,应用程序在接收到用户命令后,通常需要进行一些后台工作。

按钮可以响应单击或双击动作,在按钮接收到鼠标动作后,向其父窗口发送相应的控件通知,用户可以对这些控件通知进行消息映射,从而进行相应的处理。

在一个对话框中,可以定义一个默认按钮,这只要选中按钮属性中的“Default”选项。

如果在对话框活动的时候按下了Enter键,则等同于单击了默认按钮。

MFC提供了CButton类支持按钮控件。

7 复选框(Check Box):用来显示某种可能的选择,该项选择是独立的,用户可以选中或取消该选项。

在选项被选中的时候核选标记出现,选项被取消时核选标记消失。

MFC中由CButton类对核选框进行支持,用户可以通过SetCheck()函数和GetCheck()函数设置或获取核选框当前的状态。

8 单选按钮(Radio Button):用来选择某种可能的选择,与核选框不同,该选项不是独立的。

MFC各种控件属性介绍

MFC各种控件属性介绍

MFC各种控件属性介绍MFC(Microsoft Foundation Class)是Microsoft提供的一套C++类库,用于简化Windows应用程序的开发过程。

MFC中有许多控件可以用于构建用户界面,每个控件都有自己的属性。

接下来将介绍一些常用的MFC控件及其属性。

1. Button按钮控件:3. List Box列表框控件:List Box控件用于显示一列选项供用户选择。

常用属性包括:列表框内容(List Box Content)、选择模式(Selection Mode)、默认选择项(Default Selection)等。

5. Static静态文本控件:Static控件用于显示一些静态文本信息。

常用属性包括:文本内容(Static Text)、字体属性(Font Attributes)、文本颜色(Text Color)等。

6. Check Box复选框控件:Check Box控件用于显示一个选项,用户可以选择或取消选择该选项。

常用属性包括:选项文本(Check Box Text)、选项状态(Check Box State)、选项位置(Check Box Position)等。

7. Radio Button单选按钮控件:Radio Button控件用于显示一组互斥的选项,用户只能选择其中的一个选项。

常用属性包括:选项文本(Radio Button Text)、选项状态(Radio Button State)、选项位置(Radio Button Position)等。

8. Slider滑块控件:Slider控件用于在一个范围内选择一个数值。

常用属性包括:数值范围(Value Range)、默认数值(Default Value)、滑块大小(Slider Size)等。

9. Progress Bar进度条控件:Progress Bar控件用于显示一个操作的进度。

常用属性包括:进度范围(Progress Range)、当前进度(Current Progress)、进度栏宽度(Progress Bar Width)等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

列表框控件简单应用
重复性的过程我就不详细讲明了,只给出类里面函数的解释。

int CListBox::AddString( LPCTSTR lpszItem );//添加一个项,lpszItem是项文本内容
int CListBox::InsertString( int nIndex, LPCTSTR lpszItem );//同上,只不过这个可以指定项位置(索引),由参数nIndex指定
int CListBox::GetCurSel( ) const;//获取当前选中项的索引,函数返回索引值
int CListBox::GetText( int nIndex,CString &rString ) const;//根据索引获得项文本
int CListBox::GetCount( ) const;//获取项数量
void CListBox::ResetContent( );//删除列表框所有的项
int CListBox::DeleteString( UINT nIndex );//根据项索引从列表框删除一个项
int CListBox::SetItemHeight( int nIndex, UINT cyItemHeight );//设置一个项的高度,注意:列表框具有
//LBS_OWNERDRAWVARIABLE风格才可以单独设置一个项的高度,否则是所有项的高度
自绘列表框
这里自绘要达到的效果,就是简单模仿一下QQ界面里类似列表框控件的那种效果,先往对话框里添加列表框控件.
然后再改一下列表框的属性,所有者绘制项选择固定,有字符串前面打上勾.
接着准备两张位图,一张用于列表框的背景,一张用于项选中时的背景,ID号分别为:IDB_BK、IDB_SELECTED
如下两张位图:
再导入五张位图(QQ头像),ID号保持默认不变。

从CListBox派生出子类CNewListBox,往CNewListBox添加一个函数,用于画位图,函数如下:
void CNewListBox::DrawBK(CDC *pDC, CRect rect, UINT uIDBK)
{
CDC memDC;
memDC.CreateCompatibleDC(pDC);//兼容DC
CBitmap bmp;
bmp.LoadBitmap(uIDBK);//加载位图
BITMAP bmpInfo;
bmp.GetBitmap(&bmpInfo);//获取位图信息
memDC.SelectObject(&bmp);//选入位图
pDC->StretchBlt(rect.left,rect.top,rect.Width(),rect.Height(),&memDC,
0,0,bmpInfo.bmWidth,bmpInfo.bmHeight,SRCCOPY);
bmp.DeleteObject();
memDC.DeleteDC();
}
然后给CNewListBox添加WM_ERASEBKGND消息处理函数,这个消息是系统擦除背景时产生。

我们就在这个函数里画背景位图,函数代码如下:
BOOL CNewListBox::OnEraseBkgnd(CDC* pDC)
{
// TODO: Add your message handler code here and/or call default
CRect rect;
GetClientRect(rect);
DrawBK(pDC,rect,IDB_BK);
return TRUE;
//return CListBox::OnEraseBkgnd(pDC);
}
再处理控件左键单击消息,刷新窗口,重绘背景,函数代码如下:
void CNewListBox::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
this->Invalidate();
CListBox::OnLButtonDown(nFlags, point);
}
再添加一个函数,用于添加图标和文本内容,函数如下:
int CNewListBox::AddItem(DWORD bmpID, LPCTSTR lpszItem)
{
int Index=AddString(lpszItem);
SetItemData(Index,bmpID);
return Index;
}
添加DrawItem虚函数,代码如下:
void CNewListBox::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
// TODO: Add your code to draw the specified item
CDC dc;
dc.Attach(lpDrawItemStruct->hDC);//dc
CRect rect=lpDrawItemStruct->rcItem;//项区域
if(lpDrawItemStruct->itemState&ODS_SELECTED)
DrawBK(&dc,rect,IDB_SELECTED);
CRect bmpRect(rect.left+2,rect.top+4,35,rect.bottom-4);//位图头像区域 DrawBK(&dc,bmpRect,lpDrawItemStruct->itemData);
rect.left+=40;
CString strText;
GetText(lpDrawItemStruct->itemID,strText);
dc.SetBkMode(TRANSPARENT);
dc.SetTextColor(RGB(0,255,0));//设置字体颜色
dc.DrawText(strText,rect,DT_VCENTER|DT_LEFT|DT_SINGLELINE);
dc.Detach();
}
给列表框关联变量m_ListBox,类型为CNewListBox,对话框初始化函数添加代码如下:
m_ListBox.AddItem(IDB_BITMAP1,"人生几何(如果...)");
m_ListBox.AddItem(IDB_BITMAP2,"天下H(记得那时候...)");
m_ListBox.AddItem(IDB_BITMAP3,"聆听(小鸟在唱歌...)");
m_ListBox.AddItem(IDB_BITMAP4,"岁月无声(千杯酒...)");
m_ListBox.AddItem(IDB_BITMAP5,"大地(在那些....)");
m_ListBox.SetItemHeight(0,40);//设置高度
运行效果:
这里有一个问题,那就单击选项时窗口闪烁的很明显,如果不绘制背景和使用内存DC的话,窗口闪烁可能会小一点
关于列表框背景位图的问题,可以响应对话框的WM_CTLCOLOR消息,在这个消息处理函数中,判断是否为列表框,如果是那就返回一个位图画刷,如在对话框类添加一个CBrush变量brush;之后在对话框初始函数里创建位图画刷:
CBitmap bmp;
bmp.LoadBitmap(IDB_BK);
brush.CreatePatternBrush(&bmp);
WM_CTLCOLOR消息处理函数代码:
HBRUSH CThirdDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
if(nCtlColor==CTLCOLOR_LISTBOX)
{
return (HBRUSH)brush.GetSafeHandle();
}
else return hbr;
// TODO: Return a different brush if the default is not desired }。

相关文档
最新文档