// MyDlg.cpp : implementation file // #include "stdafx.h" #include "MyDlg.h" #include "YLGL.h" #include "MainFrimDlg2.h" HCURSOR g_cursorhand=NULL; ///////////////////////////////////////////////////////////////////////////// // MyDlg dialog MyDlg::MyDlg(CWnd* pParent /*=NULL*/) : CDialog(MyDlg::IDD, pParent) { m_pBk=NULL; m_pParent=NULL; } MyDlg::MyDlg(DWORD id, CWnd* pParent) : CDialog(id, pParent) { m_pBk=NULL; m_pParent=NULL; } void MyDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(MyDlg) //}}AFX_DATA_MAP} } BEGIN_MESSAGE_MAP(MyDlg, CDialog) ON_WM_PAINT() ON_WM_DESTROY() ON_WM_ERASEBKGND() //}}AFX_MSG_MAP ON_MESSAGE(WM_USER+1101,OnBtnClick) ON_MESSAGE(XTWM_OUTBAR_NOTIFY, OnOutbarNotify) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // MyDlg message handlers void SizeToContent(HWND hwnd, Image *img) { if(img==NULL)return; if(g_bAlphaWnd) { g_bAlphaWnd=0; SetWindowPos(hwnd, HWND_NOTOPMOST, (g_screenwid-g_fscalex*img->GetWidth())/2, (g_screenhei-g_fscaley*img->GetHeight())/2, g_fscalex*img->GetWidth(), g_fscaley*img->GetHeight(), SWP_SHOWWINDOW); } else SetWindowPos(hwnd, HWND_NOTOPMOST, (g_screenwid-g_fscalex*img->GetWidth())/2, (g_screenhei-g_fscaley*img->GetHeight())/2, g_fscalex*img->GetWidth(), g_fscaley*img->GetHeight(), NULL); } void MyDlg::OnOutbarNotify (WPARAM wParam, LPARAM lParam) { ((MainFrimDlg2*)this)->OnOutbarNotify ( wParam, lParam); } void MyDlg::OnBtnClick (WPARAM wParam, LPARAM lParam) { BtnClick(wParam, lParam); } BOOL MyDlg::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here if(g_cursorhand==NULL) g_cursorhand=AfxGetApp()->LoadCursor(IDC_CURSORHAND); BYTE *pData=NULL; BYTE *pDataBegin; CString path2=g_mainpath+"\\skin\\"+m_liapath; BOOL bReadMain=0; if("10-red.lia"==m_liapath)bReadMain=1; if(::PathFileExists(path2)==0) { bReadMain=0; path2.Replace("-red", ""); } if(!LoadLia(path2, &pData, &pDataBegin, &m_pBk, m_hWnd)) { EndDialog(0); return false; } for(int i=0; iCreate(str, WS_CHILD|WS_VISIBLE|BS_OWNERDRAW , rc, this, i+100); pic->m_bmpcount =g_resdata2.nPicBmpCount [i]; pic->ReadBmp (&pData, NULL, this); } else m_picarray.Add (NULL); m_rcarray.Add(g_resdata2.rect[i]); } delete []pDataBegin; Init(); return false; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void MyDlg::OnPaint() { try { CPaintDC dc(this); // device context for painting // TODO: Add your message handler code here if(m_pBk==NULL) { return ; } CRect rc; GetClientRect(rc); Graphics graph(dc.GetSafeHdc ()); Rect destinationRect(0,0,rc.Width (), rc.Height ()); int width=m_pBk->GetWidth() ; int height=m_pBk->GetHeight() ; graph.SetSmoothingMode(SmoothingModeHighQuality); graph.DrawImage(m_pBk, destinationRect, 0,0,width,height,UnitPixel); // Do not call CDialog::OnPaint() for painting messages } catch(...) { } } void MyDlg::OnPaint2(CWnd *pWnd) { try { CPaintDC dc(pWnd); // device context for painting // TODO: Add your message handler code here CRect rc; GetClientRect(rc); if(m_pBk==NULL) { return ; } int width=m_pBk->GetWidth() ; int height=m_pBk->GetHeight() ; Graphics graph(dc.GetSafeHdc ()); Rect destinationRect(0,0,rc.Width (), rc.Height ()); graph.SetSmoothingMode(SmoothingModeHighQuality); graph.DrawImage(m_pBk, destinationRect, 0,0,width,height,UnitPixel); } catch(...) { } } void MyDlg::OnDestroy() { try { if(m_pBk)delete m_pBk; MyBmpButton2 *pic=NULL; for(int i=0; iDestroyWindow(); delete pic; } } m_picarray.RemoveAll(); Destory(); CDialog::OnDestroy(); } catch(...) { } } BOOL MyDlg::OnEraseBkgnd(CDC* pDC) { // TODO: Add your message handler code here and/or call default return 1; } void MyDlg::OnOK() { // TODO: Add extra validation here } void MyDlg::OnCancel() { // TODO: Add extra cleanup here CDialog::OnCancel(); } void MyDlg::SetLiaPath(CString path) { if(g_bRedSkin) { path.MakeLower(); if(path=="5.lia") path="5-red.lia"; else if(path=="10.lia") path="10-red.lia"; } m_liapath=path; } BOOL MyDlg::PreTranslateMessage(MSG* pMsg) { return PreTransMsg(pMsg); // return CDialog::PreTranslateMessage(pMsg); return 1; } BEGIN_EVENTSINK_MAP(MyDlg, CDialog) //{{AFX_EVENTSINK_MAP(MyDlg) ON_EVENT(MyDlg, 100, 150 /* FSCommand */, OnFSCommandShockwaveflash1, VTS_BSTR VTS_BSTR) //}}AFX_EVENTSINK_MAP END_EVENTSINK_MAP() void MyDlg::OnFSCommandShockwaveflash1(LPCTSTR command, LPCTSTR args) { // TODO: Add your control notification handler code here OnFSCommand( command, args); }