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); } }