当前位置: 首页 > news >正文

蛇口做网站2022新闻热点事件简短30条

蛇口做网站,2022新闻热点事件简短30条,wordpress复制指定内容,网站建设利益分析VC中Picture Control透明背景实现 在VC中使用Picture Control来放置图片时想做成透明背景的,选择Bitmap类型时是图片原样显示出来的,想做成透明的Icon然后在Picture Control中选择Icon类型,可是控件缩成了一个图标。最后只能选择Bitmap类型&a…

VC中Picture Control透明背景实现

在VC中使用Picture Control来放置图片时想做成透明背景的,选择Bitmap类型时是图片原样显示出来的,想做成透明的Icon然后在Picture Control中选择Icon类型,可是控件缩成了一个图标。最后只能选择Bitmap类型,因为用这种模式可以把很多图片使用多个Picture Control组合起来。

在网上找了一些资料,经过自己多方的实验,终于可以搞定。

原理是重载Picture Control,在窗体初始化时给控件设置图片ID,并去掉控件的Bitmap类型,即设置成“无”类型,然后在OnPaint方法中重画图片。

处理步骤是:
1. Picture Control仍使用Bitmap类型,选择正确的图片并布局好。
2. 在窗体初始化时给控件设置具体的图片ID。

重载的类源码.h文件:
#pragma once

class CTransparentPic : public CStatic
{
 DECLARE_DYNAMIC(CTransparentPic)

public:
 CTransparentPic();
 virtual ~CTransparentPic();

 void SetBitmapIndex(UINT nBitmapIndex);

protected:
 DECLARE_MESSAGE_MAP()

public:
 afx_msg BOOL OnEraseBkgnd(CDC* pDC);
 afx_msg void OnPaint();

private:
 UINT m_nBitmapIndex; // Bitmap index of resource
};

.cpp文件:
#include "stdafx.h"
#include "TransparentPic.h"

IMPLEMENT_DYNAMIC(CTransparentPic, CStatic)

CTransparentPic::CTransparentPic()
 : m_nBitmapIndex(0)
{
}

CTransparentPic::~CTransparentPic()
{
}

BEGIN_MESSAGE_MAP(CTransparentPic, CStatic)
 ON_WM_ERASEBKGND()
 ON_WM_PAINT()
END_MESSAGE_MAP()

void CTransparentPic::SetBitmapIndex(UINT nBitmapIndex)
{
 ModifyStyle(SS_BITMAP, 0);  // Remove bitmap style, use owner paint

 bool bForceRedraw = (m_nBitmapIndex != nBitmapIndex);

 m_nBitmapIndex = nBitmapIndex;

 // Force owner paint
 if (::IsWindow(m_hWnd) && bForceRedraw)
 {
  Invalidate();
 }
}

// CTransparentPic message handlers
BOOL CTransparentPic::OnEraseBkgnd(CDC* pDC)
{
 return TRUE;
}

void CTransparentPic::OnPaint()
{
 CWnd::Default(); // Calls the default window procedure

 CClientDC dc(this);
 CBitmap bmp;

 // Try to load bitmap
 if (bmp.LoadBitmap(m_nBitmapIndex))
 {
  CDC memDC;

  memDC.CreateCompatibleDC(NULL);

  CBitmap* pOldBmp = memDC.SelectObject(&bmp);
  BITMAP bitmap;

  bmp.GetBitmap(&bitmap);
  TransparentBlt(dc.m_hDC, 0, 0, bitmap.bmWidth, bitmap.bmHeight, 
   memDC.m_hDC, 0, 0, bitmap.bmWidth, bitmap.bmHeight, RGB(236, 233, 216));

  memDC.SelectObject(pOldBmp);
  memDC.DeleteDC();
 }
 else
 {
  // Draw error information
  dc.TextOut(1, 1, _T("ERROR!"));
 }
}
说明一下:上面的RGB(236, 233, 216)指的是制作图片时以该颜色值作为背景色(要改一起改),TransparentBit方法在处理时自动把这些颜色值过滤掉,看起来就是透明的。

然后给Picture Control指定一个ID,在对话框的.h文件中定义CTransparentPic对象:
 CTransparentPic m_ctrlPic1;

接着在对话框.cpp文件的DoDataExchange方法CDialog::DoDataExchange之后加一项完成关联:
 CDialog::DoDataExchange(pDX);
 DDX_Control(pDX, IDC_BITMAP1, m_ctrlPic1);

最后在对话框的OnInitDialog加一项设置图片ID项:
 m_ctrlPic1.SetBitmapIndex(IDB_BITMAP1);


转载地址:http://lordong.me/wp/post/140.html

http://www.hrbkazy.com/news/24302.html

相关文章:

  • 网站建设的技术有哪些方面国内前10电商代运营公司
  • 怎么样让网站做的大气seo点石论坛
  • wordpress 新媒体站长工具seo综合查询分析
  • 哪有免费做网站河南最新消息
  • 自己的网站怎样做优化国外网站谷歌seo推广
  • 江西做网站公司电脑优化大师哪个好
  • 沧州网站域名注册服务公司怎么seo网站关键词优化
  • 网站浏览器兼容性通用360网站关键词排名优化
  • 乱起封神是那个网站开发的?seo排名优化网站
  • html网站后台模板有广告位怎么找广告商
  • 做企业信用贷的网站商务网站如何推广
  • 解释自己做的网站百度指数官网首页
  • 浙江昆仑建设集团网站宁波优化网站厂家
  • 佛山新网站制作机构公司网站设计需要多少钱
  • 上海培训网站建设网球新闻最新消息
  • 昌平做网站的公司电视剧排行榜百度搜索风云榜
  • 广西建设监理协会官方网站获客渠道有哪些
  • 做羞羞的事情网站推广app赚佣金接单平台
  • 机电建设工程施工网站图片网站seo优化方法
  • jsp动态网站开发视频教程天津seo优化公司哪家好
  • 设计网站推荐语快速网站推广
  • 网站开发seo规范seowhy教研室
  • 免费自制壁纸app关键词seo排名怎么样
  • 制作网站公司唐山优化推广服务
  • 公司建站文案给网站公司看的百度网盘登录入口
  • 做美股的数据网站seo蜘蛛池
  • 媒体查询做响应式网站有哪些怎么发布信息到百度
  • 地方性的网站有前途seo排名计费系统
  • 做货代用的网站shopify seo
  • 在那里做网站seo计费系统开发