Click here to Skip to main content
15,884,629 members
Articles / Desktop Programming / Windows Forms

A user draw button that supports PNG files with transparency, for Visual C++ 6.0 and VS2005

Rate me:
Please Sign up or sign in to vote.
4.93/5 (71 votes)
16 Jul 2008CPOL5 min read 394.3K   30.5K   202  
With this class, you can add a PNG image to your button and automatically get a highlighted and grayscale version.
// TestGdipButton.cpp : Defines the class behaviors for the application.
//

#include "stdafx.h"
#include "TestGdipButton.h"
#include "TestGdipButtonDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CTestGdipButtonApp

BEGIN_MESSAGE_MAP(CTestGdipButtonApp, CWinApp)
	//{{AFX_MSG_MAP(CTestGdipButtonApp)
	//}}AFX_MSG
	ON_COMMAND(ID_HELP, CWinApp::OnHelp)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTestGdipButtonApp construction

CTestGdipButtonApp::CTestGdipButtonApp()
{
}

/////////////////////////////////////////////////////////////////////////////
// The one and only CTestGdipButtonApp object

CTestGdipButtonApp theApp;

/////////////////////////////////////////////////////////////////////////////
// CTestGdipButtonApp initialization

BOOL CTestGdipButtonApp::InitInstance()
{
	Gdiplus::GdiplusStartupInput gdiplusStartupInput;
	Gdiplus::GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL);

#if _MFC_VER < 0x700
#ifdef _AFXDLL
	Enable3dControls();			// Call this when using MFC in a shared DLL
#else
	Enable3dControlsStatic();	// Call this when linking to MFC statically
#endif
#endif

	CTestGdipButtonDlg dlg;
	m_pMainWnd = &dlg;
	int nResponse = dlg.DoModal();
	if (nResponse == IDOK)
	{
	}
	else if (nResponse == IDCANCEL)
	{
	}

	// Since the dialog has been closed, return FALSE so that we exit the
	//  application, rather than start the application's message pump.
	return FALSE;
}

int CTestGdipButtonApp::ExitInstance() 
{
	Gdiplus::GdiplusShutdown(m_gdiplusToken);
	
	return CWinApp::ExitInstance();
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer (Senior)
United States United States
I am currently working as a consultant in Southern California.

I have worked as a Hardware Engineer, Firmware Engineer, Software Engineer and Applications Engineer.

I spent 13 years in the Disk Drive industry and the last 7 working in GPS.

Comments and Discussions