www.pudn.com > CButtonSTv4.1.zip > GenericMFCDlg.cpp


#include "stdafx.h" 
#include "GenericMFC.h" 
#include "GenericMFCDlg.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
#define IDS_MAILADDR	_T("mailto:davide_calabro@yahoo.com") 
#define IDS_WEBADDR		_T("http://www.softechsoftware.it") 
 
CGenericMFCDlg::CGenericMFCDlg(CWnd* pParent /*=NULL*/) 
	: CBkDialogST(CGenericMFCDlg::IDD, pParent) 
{ 
	//{{AFX_DATA_INIT(CGenericMFCDlg) 
		// NOTE: the ClassWizard will add member initialization here 
	//}}AFX_DATA_INIT 
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); 
} 
 
void CGenericMFCDlg::DoDataExchange(CDataExchange* pDX) 
{ 
	CBkDialogST::DoDataExchange(pDX); 
	//{{AFX_DATA_MAP(CGenericMFCDlg) 
		// NOTE: the ClassWizard will add DDX and DDV calls here 
	//}}AFX_DATA_MAP 
 
	DDX_Control(pDX, IDC_LISTPAGES, m_Pages); 
	DDX_Control(pDX, IDCANCEL, m_btnExit); 
 
	DDX_Control(pDX, IDC_EMAILLINK, m_EMailLink); 
	DDX_Control(pDX, IDC_HOMEPAGELINK, m_HomePageLink); 
} 
 
BEGIN_MESSAGE_MAP(CGenericMFCDlg, CBkDialogST) 
	//{{AFX_MSG_MAP(CGenericMFCDlg) 
	//}}AFX_MSG_MAP 
 
	ON_MESSAGE(WM_USER + 150, On_PageActivationCallback) 
END_MESSAGE_MAP() 
 
BOOL CGenericMFCDlg::OnInitDialog() 
{ 
	CBkDialogST::OnInitDialog(); 
 
//	SetBitmap(IDB_BACKGROUND); 
 
	SetIcon(m_hIcon, TRUE); 
	SetIcon(m_hIcon, FALSE); 
 
	// Button exit 
	m_btnExit.SetThemeHelper(&m_Theme); 
	m_btnExit.SetIcon(IDI_NO3, (int)BTNST_AUTO_GRAY); 
	m_btnExit.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30); 
	m_btnExit.SetTooltipText(_T("Close the application")); 
#ifdef	BTNST_USE_SOUND 
	m_btnExit.SetSound(MAKEINTRESOURCE(IDR_WAVSTART), ::GetModuleHandle(NULL), TRUE, FALSE); 
#endif 
	// Set HyperLink for E-Mail 
	m_EMailLink.SetURL(IDS_MAILADDR); 
	m_EMailLink.SetUnderline(CHyperLink::ulAlways); 
 
	// Set HyperLink for Home Page 
	m_HomePageLink.SetURL(IDS_WEBADDR); 
	m_HomePageLink.SetUnderline(CHyperLink::ulAlways); 
	 
	BOOL bRetValue = CreatePages(); 
	if (bRetValue == FALSE) MessageBox(_T("Failed creating pages!")); 
 
	// Activate first page 
	m_Pages.ActivatePage(0); 
	m_Pages.SetItemState(0, LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED); 
 
	return TRUE; 
} // End of OnInitDialog 
 
BOOL CGenericMFCDlg::CreatePages() 
{ 
	DWORD	dwRetValue = 0; 
	 
	// Create image list 
	BOOL bRetValue = m_ImageList.Create(32, 32, ILC_COLOR32 | ILC_MASK, 25, 1); 
	if (bRetValue == FALSE)	return FALSE; 
 
	HICON hIcon = ::LoadIcon(AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_PAGE01)); 
	m_ImageList.Add(hIcon); 
	hIcon = ::LoadIcon(AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_PAGE02)); 
	m_ImageList.Add(hIcon); 
	hIcon = ::LoadIcon(AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_PAGE03)); 
	m_ImageList.Add(hIcon); 
	hIcon = ::LoadIcon(AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_PAGE04)); 
	m_ImageList.Add(hIcon); 
	hIcon = ::LoadIcon(AfxGetResourceHandle(), MAKEINTRESOURCE(IDR_MAINFRAME)); 
	m_ImageList.Add(hIcon); 
	m_Pages.SetImageList(&m_ImageList, LVSIL_NORMAL); 
 
	CRect rc; 
	m_Pages.GetClientRect(rc); 
	 
	// Set new icon spacing 
	m_Pages.SetIconSpacing(rc.Width(), 12); 
 
	// Change colors 
	m_Pages.SetTextColor(RGB(255,255,255)); 
	m_Pages.SetTextBkColor(RGB(128,128,128)); 
	m_Pages.SetBkColor(RGB(128,128,128));	 
 
	// Insert column 
	m_Pages.InsertColumn(0, _T("OutlookBar")); 
 
	dwRetValue = m_Pages.CreateFromStatic(IDC_STCPLACEHOLDER, this); 
	if (dwRetValue != PAGEMANAGERST_OK)	return FALSE; 
 
	m_Pages.SetPageActivationCallback(m_hWnd, WM_USER + 150); 
 
	dwRetValue = m_Pages.AddPageToListCtrl(new CDlgBasic(), CDlgBasic::IDD, _T("Basic"), 0); 
	if (dwRetValue != PAGEMANAGERST_OK)	return FALSE; 
	// 
	dwRetValue = m_Pages.AddPageToListCtrl(new CDlgAdvanced(), CDlgAdvanced::IDD, _T("Advanced"), 1); 
	if (dwRetValue != PAGEMANAGERST_OK)	return FALSE; 
	// 
	dwRetValue = m_Pages.AddPageToListCtrl(new CDlgTransparent(), CDlgTransparent::IDD, _T("Transparent"), 2); 
	if (dwRetValue != PAGEMANAGERST_OK)	return FALSE; 
	// 
	dwRetValue = m_Pages.AddPageToListCtrl(new CDlgShadeButtonST(), CDlgShadeButtonST::IDD, _T("Shaded"), 3); 
	if (dwRetValue != PAGEMANAGERST_OK)	return FALSE; 
	// 
	dwRetValue = m_Pages.AddPageToListCtrl(new CDlgAbout(), CDlgAbout::IDD, _T("About"), 4); 
	if (dwRetValue != PAGEMANAGERST_OK)	return FALSE; 
	// 
 
	return TRUE; 
} // End of CreatePages 
 
LRESULT CGenericMFCDlg::On_PageActivationCallback(WPARAM wParam, LPARAM lParam) 
{ 
	if (lParam) 
	{ 
		CString	sPageTitle; 
 
		m_Pages.GetPageTitle((DWORD)wParam, sPageTitle); 
		sPageTitle += _T(" - SoftechSoftware"); 
		SetWindowText(sPageTitle); 
	} // if 
 
	return 0; 
} // End of On_PageActivationCallback 
 
void CGenericMFCDlg::OnPostEraseBkgnd(CDC* pDC) 
{ 
//	m_Pages.SendMessageToPage(2, WM_USER + 100, (WPARAM)pDC); 
} // End of OnPostEraseBkgnd