Click here to Skip to main content
15,894,180 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
GeneralRe: Array's again Pin
toxcct25-Apr-06 8:14
toxcct25-Apr-06 8:14 
GeneralRe: Array's again Pin
David Crow25-Apr-06 8:42
David Crow25-Apr-06 8:42 
AnswerRe: Array's again Pin
Michael Dunn25-Apr-06 8:33
sitebuilderMichael Dunn25-Apr-06 8:33 
QuestionCapturing Registry Key name,value,Status Pin
kiranin25-Apr-06 7:32
kiranin25-Apr-06 7:32 
Questionregular MFC DLL with OCX control does not show dialog Pin
alferx125-Apr-06 7:02
alferx125-Apr-06 7:02 
AnswerRe: regular MFC DLL with OCX control does not show dialog Pin
alferx125-Apr-06 7:09
alferx125-Apr-06 7:09 
QuestionPainting bad issues (GDI) Pin
Rafael Fernández López25-Apr-06 6:47
Rafael Fernández López25-Apr-06 6:47 
AnswerSOLVED Pin
Rafael Fernández López25-Apr-06 8:30
Rafael Fernández López25-Apr-06 8:30 
Well if you're curious, here you are:

ImagenTransparente.cpp

<br />
// ImagenTransparente.cpp: archivo de implementación<br />
//<br />
<br />
#include "stdafx.h"<br />
#include "Transparencia.h"<br />
#include "ImagenTransparente.h"<br />
#include ".\imagentransparente.h"<br />
<br />
<br />
// ImagenTransparente<br />
<br />
IMPLEMENT_DYNAMIC(ImagenTransparente, CStatic)<br />
ImagenTransparente::ImagenTransparente(int nID, BYTE transparencia /* = 0x7f (50%) */)<br />
{<br />
	bm.LoadBitmap(nID);<br />
<br />
	bm.GetBitmap(&BitMap);<br />
	m_nWidth = BitMap.bmWidth;<br />
	m_nHeight = BitMap.bmHeight;<br />
<br />
	bf.AlphaFormat = 0;<br />
	bf.BlendFlags = 0;<br />
	bf.BlendOp = AC_SRC_OVER;<br />
	bf.SourceConstantAlpha = transparencia;<br />
<br />
	this->nID = nID;<br />
}<br />
<br />
ImagenTransparente::~ImagenTransparente()<br />
{<br />
}<br />
<br />
<br />
BEGIN_MESSAGE_MAP(ImagenTransparente, CStatic)<br />
	ON_WM_CREATE()<br />
	ON_WM_PAINT()<br />
	ON_WM_ERASEBKGND()<br />
	ON_WM_MOVE()<br />
END_MESSAGE_MAP()<br />
<br />
<br />
<br />
// Controladores de mensajes de ImagenTransparente<br />
<br />
<br />
int ImagenTransparente::OnCreate(LPCREATESTRUCT lpCreateStruct)<br />
{<br />
	if (CStatic::OnCreate(lpCreateStruct) == -1)<br />
		return -1;<br />
<br />
	CRect rect;<br />
	GetWindowRect(&rect);<br />
	GetParent()->ScreenToClient(&rect);<br />
<br />
	miPosicion.left = rect.left;<br />
	miPosicion.right = rect.right;<br />
	miPosicion.top = rect.top;<br />
	miPosicion.bottom = rect.bottom;<br />
<br />
	this->izquierda = rect.left;<br />
	this->arriba = rect.top;<br />
<br />
	CClientDC dc(this);<br />
<br />
	CDC MemDC;<br />
	MemDC.CreateCompatibleDC(&dc);<br />
	CBitmap MemBmp;<br />
	MemBmp.CreateCompatibleBitmap(&dc, m_nWidth, m_nHeight);<br />
	CBitmap *pOldMemBmp = MemDC.SelectObject(&MemBmp);<br />
<br />
	CDC MemDC2;<br />
	MemDC2.CreateCompatibleDC(&dc);<br />
	CBitmap *pOldbmp = MemDC2.SelectObject(&bm);<br />
	MemDC.BitBlt(0, 0, m_nWidth, m_nHeight, &MemDC2, 0, 0, SRCCOPY);<br />
	MemDC2.SelectObject(pOldbmp);<br />
<br />
	dc.AlphaBlend(0, 0, m_nWidth, m_nHeight, &MemDC, 0, 0, m_nWidth, m_nHeight, bf);<br />
<br />
	MemDC.SelectObject(pOldMemBmp);<br />
<br />
	return 0;<br />
}<br />
<br />
void ImagenTransparente::OnPaint()<br />
{<br />
	CPaintDC dc(this); // device context for painting<br />
<br />
	CDC MemDC;<br />
	MemDC.CreateCompatibleDC(&dc);<br />
	CBitmap MemBmp;<br />
	MemBmp.CreateCompatibleBitmap(&dc, m_nWidth, m_nHeight);<br />
<br />
	CBitmap *pOldMemBmp = MemDC.SelectObject(&MemBmp);<br />
<br />
	CDC MemDC2;<br />
	MemDC2.CreateCompatibleDC(&dc);<br />
	CBitmap *pOldbmp = MemDC2.SelectObject(&bm);<br />
	MemDC.BitBlt(0, 0, m_nWidth, m_nHeight, &MemDC2, 0, 0, SRCCOPY);<br />
	MemDC2.SelectObject(pOldbmp);<br />
<br />
	//dc.BitBlt(0, 0, m_nWidth, m_nHeight, &MemDC, 0, 0, SRCCOPY);<br />
<br />
	dc.AlphaBlend(0, 0, m_nWidth, m_nHeight, &MemDC, 0, 0, m_nWidth, m_nHeight, bf);<br />
<br />
	MemDC.SelectObject(pOldMemBmp);<br />
}<br />
<br />
BOOL ImagenTransparente::OnEraseBkgnd(CDC* pDC)<br />
{<br />
	return TRUE;<br />
}<br />
<br />
void ImagenTransparente::OnMove(int x, int y)<br />
{<br />
	this->SetWindowPos(&CWnd::wndBottom, miPosicion.left, miPosicion.top, miPosicion.right - miPosicion.left, miPosicion.bottom - miPosicion.top, 0);<br />
	GetParent()->Invalidate();<br />
}<br />



ImagenTransparente.h

<br />
#pragma once<br />
<br />
<br />
// ImagenTransparente<br />
<br />
class ImagenTransparente : public CStatic<br />
{<br />
	DECLARE_DYNAMIC(ImagenTransparente)<br />
<br />
public:<br />
	ImagenTransparente(int nID, BYTE transparencia = 0x7f /* 0x7f = 50% */);<br />
	virtual ~ImagenTransparente();<br />
<br />
protected:<br />
	DECLARE_MESSAGE_MAP()<br />
<br />
private:<br />
	CBitmap bm;<br />
	BITMAP BitMap;<br />
	BLENDFUNCTION bf;<br />
	CRect miPosicion;<br />
<br />
	int m_nWidth;<br />
	int m_nHeight;<br />
	int izquierda;<br />
	int arriba;<br />
	int nID;<br />
public:<br />
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);<br />
	afx_msg void OnPaint();<br />
	afx_msg BOOL OnEraseBkgnd(CDC* pDC);<br />
	afx_msg void OnMove(int x, int y);<br />
};<br />



Written by: Rafael Fernández López.


Visit: http://www.maestroprogramador.com

QuestionArrays Pin
#hackC++25-Apr-06 6:01
#hackC++25-Apr-06 6:01 
Answer[deleted] Pin
toxcct25-Apr-06 6:07
toxcct25-Apr-06 6:07 
QuestionRe: Arrays Pin
David Crow25-Apr-06 6:11
David Crow25-Apr-06 6:11 
AnswerRe: Arrays Pin
toxcct25-Apr-06 6:16
toxcct25-Apr-06 6:16 
GeneralRe: Arrays Pin
David Crow25-Apr-06 6:22
David Crow25-Apr-06 6:22 
AnswerRe: Arrays Pin
David Crow25-Apr-06 6:08
David Crow25-Apr-06 6:08 
QuestionWhy is this C++ Exception unhandled ? Pin
Defenestration25-Apr-06 5:55
Defenestration25-Apr-06 5:55 
AnswerRe: Why is this C++ Exception unhandled ? Pin
includeh1025-Apr-06 6:50
includeh1025-Apr-06 6:50 
AnswerRe: Why is this C++ Exception unhandled ? Pin
Stephen Hewitt25-Apr-06 13:44
Stephen Hewitt25-Apr-06 13:44 
GeneralRe: Why is this C++ Exception unhandled ? Pin
Defenestration25-Apr-06 15:41
Defenestration25-Apr-06 15:41 
Questionvalidating user/pass inputs Pin
Kharfax25-Apr-06 5:35
Kharfax25-Apr-06 5:35 
QuestionProject for class Pin
JarethAshaer25-Apr-06 5:25
JarethAshaer25-Apr-06 5:25 
AnswerRe: Project for class Pin
David Crow25-Apr-06 6:21
David Crow25-Apr-06 6:21 
AnswerRe: Project for class Pin
Bob Flynn25-Apr-06 6:48
Bob Flynn25-Apr-06 6:48 
GeneralRe: Project for class Pin
JarethAshaer25-Apr-06 7:15
JarethAshaer25-Apr-06 7:15 
GeneralRe: Project for class Pin
Bob Flynn25-Apr-06 7:23
Bob Flynn25-Apr-06 7:23 
GeneralRe: Project for class Pin
JarethAshaer25-Apr-06 7:27
JarethAshaer25-Apr-06 7:27 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.