QQ登录

只需一步,快速开始

66上位机VC MFC列表框任意设置背景图片

[ 复制链接 ]

66上位机VC MFC列表框任意设置背景图片

66上位机VC MFC列表框任意设置背景图片
66上位机VC MFC列表框任意设置背景图片

功能展示
有时我们开发上位机时想要设置列表框的背景图片,美化下程序界面。但VC默认的是不支持列表框背景的设置,我们就得自己动手实现,我们当前例程就实现 了列表框背景图片的任意设置,效果如图;
要点提示
列表框的背景图片设置主要是通过列表框的绘制背景方法实现OnEraseBkgnd(); 在此函数中我们为防止绘制背景时闪烁,定义一个缓冲CDC memDC;先将背景图片加载到此DC中,再进行绘制;
另外我们在CtlColor()函数返回时,得返回透明的画刷还是实现背景图片绘制效果return   (HBRUSH)GetStockObject (HOLLOW_BRUSH) ;;

实现功能
1.新建基于对话框的应用程序
2.再创建我们自己的派生类class CBmpList : public CListBox;添加一位图变量作为背景图片的保存public: CBitmap m_bmp;再添加它的设置函数void CBmpList::SetBkBmp(UINTnIDSource)  { if(m_bmp.GetSafeHandle() ){ m_bmp.DeleteObject(); }
m_bmp.LoadBitmap(nIDSource); Invalidate();}
3.添加OnLButtonDown(), OnVScroll()函数实现鼠标按下和滚动条滚动时的生绘if(m_bmp.GetSafeHandle())Invalidate();
4.添加CtlColor()及OnEraseBkgnd()实现我们背景图片的绘制
  1. HBRUSH CBmpList::CtlColor(CDC* pDC, UINT nCtlColor)
  2. {
  3.         if(m_bmp.GetSafeHandle() )
  4.         {
  5.                 pDC->SetBkMode(TRANSPARENT);
  6.                 pDC->SetBkColor(RGB(255,0,255));
  7.                 return   (HBRUSH)GetStockObject (HOLLOW_BRUSH) ;
  8.         }
  9.         return NULL;
  10. }
复制代码
  1. BOOL CBmpList::OnEraseBkgnd(CDC* pDC)
  2. {
  3.         if(m_bmp.GetSafeHandle())
  4.         {
  5.                 SendMessage( WM_SETREDRAW, FALSE, 0L);
  6.                 CRect rc;
  7.                 GetClientRect(rc);
  8.                 CDC memDC;
  9.                 memDC.CreateCompatibleDC(pDC);
  10.                 memDC.SelectObject(m_bmp);
  11.                 pDC->BitBlt(0,0,rc.Width(),rc.Height(),&memDC,0,0,SRCCOPY);
  12.                 SendMessage( WM_SETREDRAW, TRUE, 0L);
  13.         }
  14.         return CListBox::OnEraseBkgnd(pDC);
  15. }
复制代码
5.最后就是我们自己创建的类的使用,在对话框资源中拖拽一列表框,关联我们创建类的变量CBmpList m_List;给这变量初始化些文字上去  CString str;
for(inti=0;i<68;i++)//给列表框添加些文字
  { str.Format("我是陈工添加的第%d行列表框文字",i);m_List.AddString(str); }
最后就是背景图片的任意设置m_List.SetBkBmp(IDB_BITMAP2);//设置列表框背景

我们来演示下功能实现的整个过程

请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:66.上位机VC MFC列表框任意设置背景图片.rar 
文件大小:621.33 KB  售价:10金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我

  

您的支持是我们创作的动力!  

  

您可花点闲钱积分自助任意充值

  

成为VIP会员 全站资源任意下载永久更新!



回复

使用道具 举报

快速回复 返回列表 客服中心 搜索