www.gusucode.com > VC++模仿超炫Vista风格QQ界面-源码程序 > VC++模仿超炫Vista风格QQ界面/BeautyQQ/BeautyQQDlg.cpp

    // BeautyQQDlg.cpp : implementation file
//

#include "stdafx.h"
#include "BeautyQQ.h"
#include "BeautyQQDlg.h"

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

// define the ctrl 's size 
#define USERINFODLG_HEIGHT      74				//height of userInfo Dlg  
#define TOOLBAR_HEIGHT			30				//height of Tollbar

/////////////////////////////////////////////////////////////////////////////
// CBeautyQQDlg dialog

CBeautyQQDlg::CBeautyQQDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CBeautyQQDlg::IDD, pParent)
{
	m_pTab = NULL;
}

void CBeautyQQDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CBeautyQQDlg)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CBeautyQQDlg, CDialog)
	//{{AFX_MSG_MAP(CBeautyQQDlg)
	ON_WM_SIZE()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CBeautyQQDlg message handlers

BOOL CBeautyQQDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	//Initial all the Ctrls
	InitialAllCtrl();

	return TRUE;
}


void CBeautyQQDlg::OnSize(UINT nType, int cx, int cy) 
{
	CDialog::OnSize(nType, cx, cy);

	//resize all the ctrl when size change
	ResizeAllCtrl();	
}


void CBeautyQQDlg::InitialAllCtrl(void)
{

	//
	//// Load resource to prepare for Initialing
	//
	//load icons from file 
	CString strName,strPath,strFilename;
	HICON hIcon1,hIcon2,hIcon3,hIcon4;
	HICON hIcon5,hIcon6,hIcon7,hIcon8;

	strPath = GetModulePath();
	
	strName = strPath +"\\skin\\commteab.ico";
	hIcon1 = (HICON)LoadImage(NULL, strName, IMAGE_ICON, 0, 0, LR_LOADFROMFILE);
	strName = strPath +"\\skin\\icon2.ico";
	hIcon2 = (HICON)LoadImage(NULL, strName, IMAGE_ICON, 0, 0, LR_LOADFROMFILE);
	strName = strPath +"\\skin\\menu.ico";
	hIcon3 = (HICON)LoadImage(NULL, strName, IMAGE_ICON, 0, 0, LR_LOADFROMFILE);
	strName = strPath +"\\skin\\info3.ico";
	hIcon4 = (HICON)LoadImage(NULL, strName, IMAGE_ICON, 0, 0, LR_LOADFROMFILE);

	strName = strPath +"\\skin\\newpersonal.ico";
	hIcon5 = (HICON)LoadImage(NULL, strName, IMAGE_ICON, 0, 0, LR_LOADFROMFILE);
	strName = strPath +"\\skin\\addressbook_new1.ico";
	hIcon6 = (HICON)LoadImage(NULL, strName, IMAGE_ICON, 0, 0, LR_LOADFROMFILE);
	strName = strPath +"\\skin\\search.ico";
	hIcon7 = (HICON)LoadImage(NULL, strName, IMAGE_ICON, 0, 0, LR_LOADFROMFILE);
	strName = strPath +"\\skin\\menu_addressbook.ico";
	hIcon8 = (HICON)LoadImage(NULL, strName, IMAGE_ICON, 0, 0, LR_LOADFROMFILE);
	//create and initial ImageList for ToolBar
	m_imageTool.Create(24, 24, ILC_COLOR8|ILC_MASK, 0, 2);
	m_imageTool.Add(hIcon5);
	m_imageTool.Add(hIcon6);	
	m_imageTool.Add(hIcon7);	
	m_imageTool.Add(hIcon8);	

	//
	//1.creat and Initial toolbar
	//
	m_rtClient.left = m_rtClient.right = m_rtClient.top = m_rtClient.bottom = 0;

	m_wndTool.Create(_T("ToolBar"), WS_CHILD | WS_VISIBLE, 
		m_rtClient, this, 0);
 	m_wndTool.SetBackColor(RGB(234,237,244));
	m_wndTool.SetBorderColor(RGB(123,22,33));
	m_wndTool.SetTransparent(TRUE);
	m_wndTool.SetMsgParent(this);
	m_wndTool.SetImageList(24, &m_imageTool);
	if (::IsWindow(m_hWnd))
	{	
		m_wndTool.ShowWindow(true);
	}

	m_wndTool.AddOneButton(ID_MENU_NEW_MEMBER, "添加好友", 0);
	m_wndTool.AddOneButton(ID_MENU_NEW_GROUP, "博客园", 1);
	m_wndTool.AddOneButton(ID_MENU_TOOL_SEARCH, "搜索", 2);
	m_wndTool.AddOneButton(ID_MENU_TOOL_SMS, "短信发送", 3);


	//
	//2.creat and initial m_UserInfoDlg
	//
	m_UserInfo.Create(CUserInfoDlg::IDD, this);	
	BindRes2CtrlbyHWND(101,m_UserInfo.m_hWnd); //bind window with a skin resource dynamically
	m_UserInfo.ShowWindow(SW_SHOW);


	//
	//3.Create and initial Tab
	//
	m_pTab = new CBeautyTabCtrlEx;
	m_pTab->CreateTab(m_rtTab, this, 10001);
	m_pTab->SetBorderColor(RGB(23,23,23));
	m_pTab->SetTabBack(RGB(245,249,250));	
	//creat and add child panel
	m_Tab_A.Create(CTabADlg::IDD, m_pTab);
	m_Tab_B.Create(CTabBDlg::IDD, m_pTab);
	m_Tab_C.Create(CTabCDlg::IDD, m_pTab);
	m_Tab_D.Create(CTabDDlg::IDD, m_pTab);
	m_pTab->AddOneTab(&m_Tab_A, _T(""), hIcon1, _T("人员列表"));
	m_pTab->AddOneTab(&m_Tab_B, _T(""), hIcon2, _T("面板管理"));	
	m_pTab->AddOneTab(&m_Tab_C, _T(""), hIcon3, _T("我的收藏"));
	m_pTab->AddOneTab(&m_Tab_D, _T(""), hIcon4, _T("系统设置"));

	
}

void CBeautyQQDlg::ResizeAllCtrl(void)
{

	//reset all the ctrl in it's right position, whenever size change
	GetClientRect(m_rtClient);
	m_rtTab = m_rtTool = m_rtUserInfo = m_rtClient;
	//userInfoDlg-Pos
	m_rtUserInfo.top = 0;	
	m_rtUserInfo.bottom = USERINFODLG_HEIGHT;
	//ToolBar-Pos
	m_rtTool.top = USERINFODLG_HEIGHT;	
	m_rtTool.bottom = USERINFODLG_HEIGHT+TOOLBAR_HEIGHT;
	//Tab-Pos
	m_rtTab.top = USERINFODLG_HEIGHT+TOOLBAR_HEIGHT;

	//move all the ctrl in proper position
	if(m_pTab)
	{
		m_UserInfo.MoveWindow(m_rtUserInfo);	
		m_wndTool.MoveWindow(m_rtTool);
		m_pTab->MoveWindow(m_rtTab);
	}
}