总之,就是不断反复遮罩“过滤掉”透明色就行,先来整段代码,后面再详细介绍。
void CTransDlg::OnPaint()
{
CPaintDC dc(this);
CMemDC m_dc;
if(!m_dc)
m_dc.LoadBitmap(IDB_BITMAP4);
CMemDC dcImage(100,100,&dc);
CBitmap bmpMask;
...
分类:
编程语言 时间:
2016-03-29 10:36:33
阅读次数:
376
CPaintDC dc(this); if (!m_hBitmap) return; image.Attach(m_hBitmap); CRect rect; GetClientRect(&rect);//获得控件所在的矩形区域 int width = rect.Width(); int heigh
分类:
编程语言 时间:
2016-02-12 23:19:06
阅读次数:
363
(1)新建立一个MFC空白的基于视类的工程(2)在View类中重写OnPaint消息void CMy005View::OnPaint() { CPaintDC dc(this); // device context for painting // TODO: Add your message ha....
分类:
编程语言 时间:
2016-01-03 22:26:35
阅读次数:
256
半透明控件的实现原理:
创建一个临时DC,发消息给父控件告知其绘制其内容于临时DC上,然后将自己相对于父控件的那块区域的绘制COPY到自己的PaintDC上,此后再做其他绘制。
代码思路如下:
Child:
{
CPaintDC dc;
CMemDC mdc;
//创建临时DC
CBitmap bitmap;
CDC cdc;
::SendMessage(hParent, WM...
分类:
编程语言 时间:
2015-07-09 14:31:25
阅读次数:
171
void CGasBagCDlg::Linetwoctrl(CPaintDC *dc,int leftid,int rightid,CGasBagCDlg *phd){ //201506161749中北大学韩晓东编制 //功能:可在onpaint中调用,连接两个控件 //参数说明:参数1:onpai...
分类:
其他好文 时间:
2015-06-16 22:56:50
阅读次数:
342
问题背景:画带坐标的图,例如 画里面那条曲线的时候,希望将绘图区域局限在坐标范围内,范围外的就自动屏蔽掉。 两个方案,一是用CPaintDC的SelectClipRgn函数,感觉略麻烦。另一个函数,就是标题里的IntersectClipRect,感觉更好用些,就一个简单的输入参数rect,搞定。
分类:
其他好文 时间:
2015-05-09 08:47:24
阅读次数:
91
1 CPaintDC类(1)CPaintDC类是CDC类的一个派生类,该类一般用在响应WM_PAINT消息的函数OnPaint()中。(2)WM_PAINT消息是当窗口的某个区域需要重画时激发的窗口消息。当程序中的消息循环接到WM_PAINT消息时就自动调用消息处理函数OnPaint(),如果在On...
分类:
编程语言 时间:
2015-04-22 00:05:51
阅读次数:
726
1.CClientDC(客户区设备上下文)用于客户区的输出它在构造函数中封装了GetDC(),在析构函数中封装了ReleaseDC()函数。一般在响应非窗口重画消息(如键盘输入时绘制文本、鼠标绘图)绘图时要用到它。2.CPaintDC用于响应窗口重绘消息(WM_PAINT)是的绘图输出。CPaint...
分类:
其他好文 时间:
2015-03-18 10:15:20
阅读次数:
124
WM_PAINT添加消息处理函数void CDialog6::OnPaint(){CPaintDC dc(this);// device context for paintingCRect rect;GetClientRect(&rect);CDC dcMem;dcMem.CreateCompati...
分类:
其他好文 时间:
2015-03-04 12:27:41
阅读次数:
191
一、改变对话框背景颜色1 void CTESTDlg::OnPaint()2 {3 CPaintDC dc(this);4 CRect rect;5 GetClientRect(rect);6 dc.FillSolidRect(rect, RGB(255, 0, 0)...
分类:
编程语言 时间:
2014-12-06 18:00:48
阅读次数:
144