123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362 |
- // PreviewDlg.cpp : implementation file
- //
- #include "stdafx.h"
- #include "ylgl.h"
- #include "PreviewDlg.h"
- #include "ShowPic22.h"
- #ifdef _DEBUG
- //#define new DEBUG_NEW //wangwenbin modify 2014-04-27
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
- extern Bitmap *g_pImgStaBuf;
- /////////////////////////////////////////////////////////////////////////////
- // PreviewDlg dialog
- PreviewDlg::PreviewDlg(CWnd* pParent) : CDialog(PreviewDlg::IDD, pParent)
- {
- g_pBlackBrush=new SolidBrush(Color(255,0,0,0));
- g_pRedBrush=new SolidBrush(Color(255,255,0,0));
- m_bMin=1;
- m_pos=0;
- m_npages=0;
- m_ncurpage=0;
- }
- void PreviewDlg::DoDataExchange(CDataExchange* pDX)
- {
- CDialog::DoDataExchange(pDX);
- }
- BEGIN_MESSAGE_MAP(PreviewDlg, CDialog)
- ON_WM_DESTROY()
- ON_WM_ERASEBKGND()
- ON_WM_LBUTTONDOWN()
- END_MESSAGE_MAP()
- BOOL PreviewDlg::OnEraseBkgnd(CDC* pDC)
- {
- CRect rc;
- GetClientRect (rc);
- pDC->FillSolidRect (rc, RGB(0,0,0));
- return 1;
- }
- BOOL PreviewDlg::OnInitDialog()
- {
- CDialog::OnInitDialog();
- return TRUE;
- }
- void PreviewDlg::InitCtrl()
- {
- CString path,path2,str;
- int pos;
- int i = 0;
- for( i=0; i<m_pPathArray->GetSize (); i++)
- {
- path=m_pPathArray->ElementAt(i);
- pos=path.ReverseFind('\\');
- str=path.Right(path.GetLength()-pos-1);
- str.TrimLeft("m");
- m_patharray.Add(path.Left(pos)+"\\s"+str);
- }
- m_pPathArray=&m_patharray;
- if(m_pPathArray->GetSize ()%7==0)
- m_npages=m_pPathArray->GetSize ()/7;
- else
- m_npages=m_pPathArray->GetSize ()/7+1;
- CRect rc;
- GetWindowRect(rc);
- int wid=rc.Width ();
- int hei=rc.Height ();
- CRect rc2;
- rc2.left =25;
- rc2.right =wid-5;
- rc2.top =30;
- int pichei=(hei-6*5-rc2.top*2)/7;
- int dt=pichei+5;
- rc2.bottom =rc2.top +pichei;
- for( i=0; i<7; i++)
- {
- m_picctrl[i].Create(_T(""), WS_VISIBLE|WS_CHILD|SS_BITMAP, rc2, this);
- rc2.top +=dt;
- rc2.bottom +=dt;
- /* if(m_pPathArray->GetSize()>i)
- {
- path=m_pPathArray->ElementAt(i);
- m_picctrl[i].SetPicPath(path);
- }*/
- }
- rc.left=10;
- rc.right=rc.left+10;
- rc.top=10;
- rc.bottom=25;
- m_link1.Create ("¡Ä", WS_CHILD|WS_VISIBLE, rc, this, 100);//¡Å
- m_link1.PositionWindow();
- m_link1.GetWindowRect (rc);ScreenToClient(rc);
- dt=wid/2-rc.left-rc.Width()/2+10;
- rc.left +=dt;
- rc.right +=dt;
- m_link1.MoveWindow(rc);
- rc.bottom=hei-5;
- rc.top=hei-25;
- m_link2.Create ("¡Å", WS_CHILD|WS_VISIBLE, rc, this, 100);
- m_link2.PositionWindow();
- ////////////////
- rc.left=5;
- rc.right=rc.left+10;
- rc.top=0;
- rc.bottom=hei;
- m_link3.Create ("£¼", WS_CHILD|WS_VISIBLE, rc, this, 100);//£¾
- m_link3.PositionWindow();
- m_link3.GetWindowRect (rc);ScreenToClient(rc);
- dt=hei/2-rc.top-rc.Height()/2;
- rc.top +=dt;
- rc.bottom +=dt;
- m_link3.MoveWindow(rc);
- m_link1.m_bBlackBk=1;
- m_link2.m_bBlackBk=1;
- m_link3.m_bBlackBk=1;
- //////////////////////////////////////////////////////////
- // CRect rc;
- GetClientRect(rc);
- CRgn rgn1, rgn2, rgn3;
- rgn1.CreateRectRgn (0,0, rc.Width (), rc.Height ());
- // rgn2.CreateRectRgn (0,0, 10, 10);
- // rgn3. CreateEllipticRgn(0,0,20,20);
- // rgn2.CombineRgn (&rgn2, &rgn3, RGN_DIFF);
- m_link1.GetWindowRect (rc);
- ScreenToClient(rc);
- rgn2.CreateRectRgn (rc.left,rc.top, rc.right, rc.bottom);
- rgn1.CombineRgn (&rgn1, &rgn2, RGN_DIFF);
- rgn2.DeleteObject ();
- m_link2.GetWindowRect (rc);
- ScreenToClient(rc);
- rgn2.CreateRectRgn (rc.left,rc.top, rc.right, rc.bottom);
- rgn1.CombineRgn (&rgn1, &rgn2, RGN_DIFF);
- rgn2.DeleteObject ();
- m_link3.GetWindowRect (rc);
- ScreenToClient(rc);
- rgn2.CreateRectRgn (rc.left,rc.top, rc.right, rc.bottom);
- rgn1.CombineRgn (&rgn1, &rgn2, RGN_DIFF);
- rgn2.DeleteObject ();
- for( i=0; i<7; i++)
- {
- m_picctrl[i].GetWindowRect (rc);
- ScreenToClient(rc);
- rgn2.CreateRectRgn (rc.left,rc.top, rc.right, rc.bottom);
- rgn1.CombineRgn (&rgn1, &rgn2, RGN_DIFF);
- rgn2.DeleteObject ();
- }
- GetClientRect(rc);
- rgn2.CreateRectRgn (0,0, rc.Width (), rc.Height ());
- rgn2.CombineRgn (&rgn2, &rgn1, RGN_DIFF);
- rgn1.DeleteObject ();
- ::SetWindowRgn (m_hWnd, rgn2, 0);
- }
- void PreviewDlg::OnDestroy()
- {
- CDialog::OnDestroy();
- delete g_pBlackBrush;
- delete g_pRedBrush;
- if(g_pImgStaBuf)delete g_pImgStaBuf;g_pImgStaBuf=NULL;
- }
- void PreviewDlg::ShowMin()
- {
- m_bMin=1;
- m_link3.SetWindowText ("£¼");
- CRect rc;
- rc.top =50;
- rc.bottom =g_screenhei-50;
- rc.right =g_screenwid-10;
- rc.left =rc.right -100;
- ///////////////////////////
- rc.left=g_screenwid-20;
- rc.right=rc.left+100;
- ///////////////////////////
- MoveWindow (rc);
- }
- void PreviewDlg::ShowNormal()
- {
- if(((ShowPic22*)GetParent())->m_bauto)
- {
- return;
- }
- m_bMin=0;
- m_link3.SetWindowText ("£¾");
- CRect rc;
- rc.top =50;
- rc.bottom =g_screenhei-50;
- rc.right =g_screenwid-10;
- rc.left =rc.right -100;
- ///////////////////////////
- // rc.left=g_screenwid-20;
- // rc.right=rc.left+100;
- ///////////////////////////
- MoveWindow (rc);
- ShowPic(((ShowPic22*)GetParent())->m_nCurImgPos);
- }
- void PreviewDlg::LinkClick(CString str)
- {
- if(str=="£¼")
- {
- ShowNormal();
- }
- else if(str=="£¾")
- {
- ShowMin();
- }
- else if(str=="¡Ä")
- {
- PrePage();
- }
- else if(str=="¡Å")
- {
- NextPage();
- }
- }
- void PreviewDlg::ShowPic(int pos)
- {
- if(m_bMin)return;
- CString path;
- m_pos=pos;
- m_ncurpage=pos/7;
- for(int i=0; i<7; i++)
- {
- if(m_pos%7==i)
- {
- m_picctrl[i].m_nFrameMode=100;
- }
- else
- m_picctrl[i].m_nFrameMode=0;
- pos=m_ncurpage*7+i;
- if(m_pPathArray->GetSize()>pos)
- {
- path=m_pPathArray->ElementAt(pos);
- m_picctrl[i].SetPicPath(path);
- }
- else
- m_picctrl[i].SetPicPath("");
- }
- }
- void PreviewDlg::ShowPic2()
- {
- CString path;
- m_pos=m_ncurpage*7;
- for(int i=0; i<7; i++)
- {
- if(m_pos%7==i)
- {
- m_picctrl[i].m_nFrameMode=100;
- }
- else
- m_picctrl[i].m_nFrameMode=0;
- int pos=m_ncurpage*7+i;
- if(m_pPathArray->GetSize()>pos)
- {
- path=m_pPathArray->ElementAt(pos);
- m_picctrl[i].SetPicPath(path);
- }
- else
- m_picctrl[i].SetPicPath("");
- }
- }
- void PreviewDlg::PrePage()
- {
- try
- {
- if(m_ncurpage==0)
- m_ncurpage=m_npages-1;
- else
- m_ncurpage--;
- ShowPic2();
- }
- catch(...)
- {
- }
- }
- void PreviewDlg::NextPage()
- {
- try
- {
- if(m_ncurpage==m_npages-1)
- m_ncurpage=0;
- else
- m_ncurpage++;
- ShowPic2();
- }
- catch(...)
- {
- }
- }
- void PreviewDlg::OnLButtonDown(UINT nFlags, CPoint point)
- {
- CRect rc;
- for(int i=0; i<7; i++)
- {
- m_picctrl[i].GetWindowRect(rc);
- ScreenToClient(rc);
- if(rc.PtInRect (point))
- {
- int pos=m_ncurpage*7+i;
- if(m_pPathArray->GetSize()>pos)
- {
- // ShowPic(pos);
- int oldpos=m_pos;
- m_pos=pos;
- for(int i=0; i<7; i++)
- {
- if(m_pos%7==i)
- {
- m_picctrl[i].m_nFrameMode=100; m_picctrl[i].Invalidate();
- }
- else if(oldpos%7==i)
- {
- m_picctrl[i].m_nFrameMode=0;
- m_picctrl[i].Invalidate();
- }
- }
- ((ShowPic22*)GetParent())->m_nCurImgPos = m_pos-1;
- ((ShowPic22*)GetParent())->Next();
- }
- break;
- }
- }
- CDialog::OnLButtonDown(nFlags, point);
- }
|