// PrintPreview.cpp : implementation file // #include "stdafx.h" #include "ylgl.h" #include "PrintPreview.h" ///////////////////////////////////////////////////////////////////////////// // PrintPreview dialog IDC_RADIO4 PrintPreview::PrintPreview(CWnd* pParent /*=NULL*/) : CDialog(PrintPreview::IDD, pParent) { //{{AFX_DATA_INIT(PrintPreview) m_num = 1; //}}AFX_DATA_INIT m_pDC=NULL; m_rc.right =0; m_mode=0; m_ncopies=1; } void PrintPreview::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(PrintPreview) DDX_Control(pDX, IDC_SPIN1, m_spin); DDX_Radio(pDX, IDC_RADIO1, m_radio1); DDX_Text(pDX, IDC_EDIT3, m_num); DDV_MinMaxUInt(pDX, m_num, 1, 10); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(PrintPreview, CDialog) //{{AFX_MSG_MAP(PrintPreview) ON_WM_CLOSE() ON_WM_PAINT() ON_BN_CLICKED(IDC_BUTTON1, OnButton1) ON_BN_CLICKED(IDC_BUTTON2, OnButton2) ON_BN_CLICKED(IDC_BUTTON3, OnButton3) ON_WM_MOUSEWHEEL() ON_WM_LBUTTONDOWN() ON_WM_LBUTTONUP() ON_BN_CLICKED(IDC_BUTTON4, OnButton4) ON_BN_CLICKED(IDC_BUTTON5, OnButton5) ON_BN_CLICKED(IDC_RADIO1, OnRadio1) ON_BN_CLICKED(IDC_RADIO2, OnRadio2) ON_BN_CLICKED(IDC_RADIO3, OnRadio3) ON_BN_CLICKED(IDC_RADIO4, OnRadio4) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // PrintPreview message handlers void PrintPreview::OnOK() { // TODO: Add extra validation here CDialog::OnOK(); } void PrintPreview::OnCancel() { // TODO: Add extra cleanup here } void PrintPreview::OnClose() { // TODO: Add your message handler code here and/or call default CDialog::OnCancel(); } BOOL PrintPreview::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here DEVMODE dm; dm.dmSize = sizeof(DEVMODE) ; EnumDisplaySettings(NULL,ENUM_CURRENT_SETTINGS,&dm); ::SetWindowPos(m_hWnd,HWND_TOP,0 ,0,dm.dmPelsWidth,dm.dmPelsHeight,SWP_SHOWWINDOW); if(m_mode!=1)GetDlgItem(IDC_RADIO4)->ShowWindow(0); if(m_mode==0 || IsHasRights2new(49)==0) { GetDlgItem(IDC_RADIO1)->ShowWindow(0); GetDlgItem(IDC_RADIO2)->ShowWindow(0); GetDlgItem(IDC_RADIO3)->ShowWindow(0); } if(m_mode==2)GetDlgItem(IDC_RADIO3)->ShowWindow(0); if(m_mode==3)GetDlgItem(IDC_RADIO3)->ShowWindow(0); m_spin.SetRange(1, 10); #ifndef CHILD_VERSION GetDlgItem(IDC_RADIO3)->ShowWindow(0); #endif CRect rc,rc2; GetClientRect(rc); RectFitDes(m_w,m_h, rc); if(1)//m_wGetWindowRect(rc2); ScreenToClient(rc2); int wid=rc2.Width (); rc2.right =rc.left -10; rc2.left =rc2.right -wid; GetDlgItem(IDOK)->MoveWindow(rc2); GetDlgItem(IDC_BUTTON1)->GetWindowRect(rc2); ScreenToClient(rc2); rc2.right =rc.left -10; rc2.left =rc2.right -wid; GetDlgItem(IDC_BUTTON1)->MoveWindow(rc2); GetDlgItem(IDC_BUTTON2)->GetWindowRect(rc2); ScreenToClient(rc2); rc2.right =rc.left -10; rc2.left =rc2.right -wid; GetDlgItem(IDC_BUTTON2)->MoveWindow(rc2); GetDlgItem(IDC_BUTTON3)->GetWindowRect(rc2); ScreenToClient(rc2); rc2.right =rc.left -10; rc2.left =rc2.right -wid; GetDlgItem(IDC_BUTTON3)->MoveWindow(rc2); GetDlgItem(IDC_BUTTON4)->GetWindowRect(rc2); ScreenToClient(rc2); rc2.right =rc.left -10; rc2.left =rc2.right -wid; GetDlgItem(IDC_BUTTON4)->MoveWindow(rc2); GetDlgItem(IDC_BUTTON5)->GetWindowRect(rc2); ScreenToClient(rc2); rc2.right =rc.left -10; rc2.left =rc2.right -wid; GetDlgItem(IDC_BUTTON5)->MoveWindow(rc2); GetDlgItem(IDC_RADIO1)->GetWindowRect(rc2); ScreenToClient(rc2); rc2.right =rc.left -10; rc2.left =rc2.right -wid; GetDlgItem(IDC_RADIO1)->MoveWindow(rc2); GetDlgItem(IDC_RADIO2)->GetWindowRect(rc2); ScreenToClient(rc2); rc2.right =rc.left -10; rc2.left =rc2.right -wid; GetDlgItem(IDC_RADIO2)->MoveWindow(rc2); GetDlgItem(IDC_RADIO3)->GetWindowRect(rc2); ScreenToClient(rc2); rc2.right =rc.left -10; rc2.left =rc2.right -wid; GetDlgItem(IDC_RADIO3)->MoveWindow(rc2); GetDlgItem(IDC_RADIO4)->GetWindowRect(rc2); ScreenToClient(rc2); rc2.right =rc.left -10; rc2.left =rc2.right -wid; GetDlgItem(IDC_RADIO4)->MoveWindow(rc2); GetDlgItem(IDC_STATIC1)->GetWindowRect(rc2); ScreenToClient(rc2); int wid2=rc2.Width(); rc2.left =rc.left -10 -wid; rc2.right=rc2.left+wid2; GetDlgItem(IDC_STATIC1)->MoveWindow(rc2); m_spin.GetWindowRect(rc2); int wid3=rc2.Width(); GetDlgItem(IDC_EDIT3)->GetWindowRect(rc2); ScreenToClient(rc2); wid2=rc2.Width(); rc2.right =rc.left -10-wid3; rc2.left=rc2.right-wid2; GetDlgItem(IDC_EDIT3)->MoveWindow(rc2); rc2.left=rc2.right; rc2.right=rc2.left+wid3; m_spin.MoveWindow(rc2); } else { GetDlgItem(IDOK)->GetWindowRect(rc2); ScreenToClient(rc2); int hei=rc2.Height (); rc2.bottom =rc.top -10; rc2.top =rc2.bottom -hei; GetDlgItem(IDOK)->MoveWindow(rc2); int wid=rc2.Width ()+10; rc2.left +=wid; rc2.right +=wid; GetDlgItem(IDC_BUTTON1)->MoveWindow(rc2); rc2.left +=wid; rc2.right +=wid; GetDlgItem(IDC_BUTTON2)->MoveWindow(rc2); rc2.left +=wid; rc2.right +=wid; GetDlgItem(IDC_BUTTON3)->MoveWindow(rc2); rc2.left +=wid; rc2.right +=wid; GetDlgItem(IDC_BUTTON4)->MoveWindow(rc2); rc2.left +=wid; rc2.right +=wid; GetDlgItem(IDC_BUTTON5)->MoveWindow(rc2); } if(m_mode==1) m_radio1 = atoi(g_cominfoarray.ElementAt(0).ElementAt(66)); else if(m_mode==2) m_radio1 = atoi(g_cominfoarray.ElementAt(0).ElementAt(75)); else if(m_mode==3) m_radio1 = atoi(g_cominfoarray.ElementAt(0).ElementAt(87)); UpdateData(false); return TRUE; } void PrintPreview::OnPaint() { CPaintDC dc(this); if(m_pDC) { CRect rc; GetClientRect(rc); if(m_rc.right ==0) { m_rc=rc; ////////// float fscale=(float)m_w/(float)m_h; float rcscale=((float)m_rc.Width ())/((float)m_rc.Height ()); int rcwid=m_rc.Width (); int rchei=m_rc.Height (); int dt=0; if(rcscaleWidth ()*0.1; dty=pRc->Height ()*0.1; pRc->left -= dtx; pRc->right += dtx; pRc->top -= dty; pRc->bottom = pRc->top+pRc->Width ()*(m_h)/(m_w); Invalidate(); } void PrintPreview::OnButton3() { CRect *pRc=&m_rc; int dtx; int dty; dtx=pRc->Width ()*0.1; dty=pRc->Height ()*0.1; if(dtx<10 || dty<10)return; pRc->left += dtx; pRc->right -= dtx; pRc->top += dty; pRc->bottom = pRc->top+pRc->Width ()*(m_h)/(m_w); Invalidate(); } BOOL PrintPreview::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt) { if(zDelta>0) { CRect *pRc=&m_rc; int dtx; int dty; dtx=pRc->Width ()*0.1; dty=pRc->Height ()*0.1; pRc->left -= dtx; pRc->right += dtx; pRc->top -= dty; pRc->bottom = pRc->top+pRc->Width ()*(m_h)/(m_w); Invalidate(); } else { CRect *pRc=&m_rc; int dtx; int dty; dtx=pRc->Width ()*0.1; dty=pRc->Height ()*0.1; if(dtx<10 || dty<10)return 1; pRc->left += dtx; pRc->right -= dtx; pRc->top += dty; pRc->bottom = pRc->top+pRc->Width ()*(m_h)/(m_w); Invalidate(); } return CDialog::OnMouseWheel(nFlags, zDelta, pt); } void PrintPreview::OnLButtonDown(UINT nFlags, CPoint point) { SetCapture(); m_startpt=point; CDialog::OnLButtonDown(nFlags, point); } void PrintPreview::OnLButtonUp(UINT nFlags, CPoint point) { if(GetCapture()!=this)return; ReleaseCapture(); m_rc.left +=point.x-m_startpt.x; m_rc.right +=point.x-m_startpt.x; m_rc.top +=point.y-m_startpt.y; m_rc.bottom +=point.y-m_startpt.y; m_startpt=point; Invalidate(); CDialog::OnLButtonUp(nFlags, point); } void PrintPreview::OnButton4() { m_rc.right =0; Invalidate(); } extern void SaveImageToFile(Image *img, CString path); void PrintPreview::OnButton5() { CFileDialog fdlg(false, _T(".jpg"), m_name+_T("制作单.jpg"), OFN_HIDEREADONLY, "图片文件(*.jpg)|*.jpg||", this); if(fdlg.DoModal ()!=IDOK)return; CString path=fdlg.GetPathName (); if(m_pDC==NULL)return; Bitmap *pBmp=new Bitmap(m_w,m_h, PixelFormat24bppRGB ); Graphics graph(pBmp); HDC hdc=graph.GetHDC(); ::BitBlt (hdc, 0, 0, m_w,m_h, m_pDC->GetSafeHdc(), 0,0, SRCCOPY); graph.ReleaseHDC(hdc); ::SaveImageToFile (pBmp, path); delete pBmp; } void PrintPreview::OnRadio1() { UpdateData(); if(m_mode==1) { CString sql; sql.Format ("update version set [setprintstyle]='%d'", m_radio1); g_sendhead.bsql=1; g_pMainWnd->ProcessChatMessageRequest2(sql);if(g_bSendOK==0)return; AfxMessageBox("保存成功! 重新进入打印页面时生效!", MB_ICONINFORMATION); CString str; str.Format ("%d", m_radio1); g_cominfoarray.ElementAt(0).SetAt (66, str); } else if(m_mode==2) { CString sql; sql.Format ("update version set [setprintstyle2]='%d'", m_radio1); g_sendhead.bsql=1; g_pMainWnd->ProcessChatMessageRequest2(sql);if(g_bSendOK==0)return; AfxMessageBox("保存成功! 重新进入打印页面时生效!", MB_ICONINFORMATION); CString str; str.Format ("%d", m_radio1); g_cominfoarray.ElementAt(0).SetAt (75, str); } else if(m_mode==3) { CString sql; sql.Format ("update version set [setprintstyle3]='%d'", m_radio1); g_sendhead.bsql=1; g_pMainWnd->ProcessChatMessageRequest2(sql);if(g_bSendOK==0)return; AfxMessageBox("保存成功! 重新进入打印页面时生效!", MB_ICONINFORMATION); CString str; str.Format ("%d", m_radio1); g_cominfoarray.ElementAt(0).SetAt (87, str); } } void PrintPreview::OnRadio2() { // TODO: Add your control notification handler code here OnRadio1(); } void PrintPreview::OnRadio3() { // TODO: Add your control notification handler code here OnRadio1(); } void PrintPreview::OnRadio4() { // TODO: Add your control notification handler code here OnRadio1(); }