Setting the Background Image for a List Control
1、新建一个对话框工程,在对话框中添加一个list控件,ID:IDC_LIST1。打开MFC ClassWizard,点击Add Class按钮添加新类CListNew,Base class:CListCtrl,同时为list控件关联控件变量,变量名为:m_RecordList,变量类型为:CListNew。同时在CxxDlg.h文件中添加#include "ListNew.h"
2、在listNew.h构造函数中添加:public: SetBkImageNew(CString strImagePath);
CBitmap m_bmpBkImage;
BOOL m_bLoaded;
3、在ClassView视图下,选中CListNew,点击右键选择:Add Windows Message Handles for class CListNew,添加=LVN_ITEMCHANGED、WM_ERASEBKGND、WM_HSCROLL、WM_VSCROLL
4、在ListNew.cpp中添加OnEraseBkgnd、SetBkImageNew、OnHScroll、OnVScroll、OnItemchanged等实现函数
BOOL CListNew::OnEraseBkgnd(CDC* pDC)
{
// TODO: Add your message handler code here and/or call default
if(m_bLoaded)
{
BITMAP bmp;
m_bmpBkImage.GetBitmap(&bmp);
CRect rcClient;
GetWindowRect(&rcClient);
ScreenToClient(&rcClient);
//GetClientRect(&rcClient);
CDC dcMem;
dcMem.CreateCompatibleDC(pDC);
dcMem.SelectObject(m_bmpBkImage);
pDC->SetStretchBltMode(COLORONCOLOR);
pDC->StretchBlt(rcClient.left,rcClient.top,rcClient.Width(),rcClient.Height(),&dcMem,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);
}
return TRUE;
// return CListCtrl::OnEraseBkgnd(pDC);
}
BOOL CListNew::SetBkImageNew(CString strImagePath)
{
HBITMAP hBitmap = (HBITMAP)::LoadImage(AfxGetInstanceHandle(),strImagePath.GetBuffer(0),IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
m_bmpBkImage.Attach(hBitmap);
m_bLoaded=TRUE;
Invalidate();
return 0;
}
void CListNew::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: Add your message handler code here and/or call default
Invalidate();
CListCtrl::OnHScroll(nSBCode, nPos, pScrollBar);
}
void CListNew::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: Add your message handler code here and/or call default
Invalidate();
CListCtrl::OnVScroll(nSBCode, nPos, pScrollBar);
}
void CListNew::OnItemchanged(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
POSITION pos=GetFirstSelectedItemPosition();
if(pos==NULL)
Invalidate();
*pResult = 0;
}
5、将需要添加为背景图片的BMP位图放在当前工程目录文件夹下,(此处我把BMP位图放在res文件夹下,位图名称为:t0.bmp)
6、在CxxDlg类中的OnInitDialog函数里添加:
char pBuf[256]; //存放路径的变量
GetCurrentDirectory(256,pBuf); //获取程序的当前目录
strcat(pBuf,"//res//t0.bmp");
m_RecordList.SetBkImageNew(pBuf);
m_RecordList.SetBkColor(CLR_NONE);
m_RecordList.SetTextBkColor(CLR_NONE); //设置背景透明
Setting the Background Image for a List Control相关推荐
- extend the gridview control
Category: ASP.Net 2.0 在asp.net 3.5下需要做一些小的修改 When I have helped people with extending the GridView ...
- android 控制中心os,Phone X Launcher, OS 11 iLauncher Control Center
Phone X Launcher, OS 11 iLauncher & Control Center 介绍 Phone X Launcher, OS 11 iLauncher & Co ...
- xamarin.android 控件,Android 库控件 - Xamarin | Microsoft Docs
Xamarin Android 库控件Xamarin.Android Gallery control 03/15/2018 本文内容 Gallery是一种布局小组件,用于显示水平滚动列表中的项,并将当 ...
- ALV Styles in Field catalogue using OOPS
转自http://www.saptechnical.com/Tutorials/ALV/Styles/demo.htm By Swarna S, Tata Consultancy Services * ...
- html代码范例_最佳HTML范例和HTML5范例
html代码范例 HTML provides the structure of websites. Here are some examples of how to use HTML syntax t ...
- 更改重做日志(redolog)文件的大小
更改重做日志(redolog)文件的大小 从原来每个100M更改成1M SQL> show user; USER is "SYS" SQL> select group# ...
- UITableView上的iOS UIRefreshControl
In this tutorial, we'll be implementing UIRefreshControl on the UITableView in our iOS Application. ...
- Customizing Navigation Bar and Status Bar in iOS 7
RZMars个人Blog地址: http://www.rzmars.com (转载于simon ng的教程) Like many of you, I have been very busy upgra ...
- Java多线程系列--【JUC线程池 02】- 线程池原理(一)
参考:http://www.cnblogs.com/skywang12345/p/java_threads_category.html 概要 在前面一章"Java多线程系列--"J ...
最新文章
- 遥感计算机分类的基本原理,遥感数字图像的计算机分类
- 在windows xp下,一块网卡绑定多个ip
- 大数据_Hbase-shell命令_操作hbase_完成对表的增删改查---Hbase工作笔记0005
- SQL Server 时间戳与时间格式互相转换
- dev gridcontrol 单选框效果
- P问题、NP问题、NPC问题
- Edge浏览器被篡改主页
- lzg_ad:EWF原理详解
- 2022氯化工艺考试题库及答案
- 用凯撒密码对喜欢的人表白
- GDKOI2014「壕壕的寒假作业」
- 判断一个整数是否为回文数
- 为什么还有人用java_java14都有了,为什么还有人用java8?
- amd显卡用黑苹果输出黑屏_黑苹果用杂交法修改framebuffer开启显卡所有输出端口成功...
- PHP实现图片上添加文字(证书生成)
- 浙大大龄毕业生的曲折人生路
- 万字 Java 知识地图助你成为 Offer 收割机
- 实现微信下载APP的思路
- 数据加密技术知识点大盘点
- python求一组数中最大数_python如何求一组数的最大值?_后端开发