// ChoosePhotoSkin2.cpp : implementation file // #include "stdafx.h" #include "ChoosePhotoSkin2.h" #include "YLGL.h" #include "./helper/ffsco.h" #include ".\MenuBarXP\MenuXP.h" #include "ChoosePhotoSkin3.h" #include "ShowPic22.h" #include "ClientRequirement.h" #include "MyLock.h" #include "Time5.h" #include "ComparePhoto.h" #include "ReplaceDesignNo.h" #include "Login2.h" #include "TimeOutDlg.h" #include "ShowEffect.h" #include "SelBrunDevice.h" #include "ProductChooseFilter.h" #define THUMBNAIL_WIDTH 100 #define THUMBNAIL_HEIGHT 90 extern HCURSOR g_cursorhand; //mode //0 全部 //1 选中 //2 未选 //3 删除 //4 入册 //5 入底 ///////////////////////////////////////////////////////////////////////////// // ChoosePhotoSkin2 dialog IDC_EDITzs ChoosePhotoSkin2::ChoosePhotoSkin2(CWnd* pParent /*=NULL*/) : CDialog(ChoosePhotoSkin2::IDD, pParent) { m_pBk = NULL; m_pParent = NULL; m_name1 = _T(""); m_name2 = _T(""); m_time4 = g_date; m_waiter3 = _T(""); m_takezs = _T(""); m_taoxizs = _T(""); m_choosezs = _T(""); m_strOrderNumber = _T(""); m_money3 = _T(""); m_bz3 = _T(""); //}}AFX_DATA_INIT m_bTerminate = false; m_bRunning = false; m_hThread = NULL; m_bSave = 0; m_bModify = 0; m_mode = 0; m_showpichwd = NULL; m_mode2 = 0; g_pMainWnd->GetSkin(); m_bSort = 0; m_bHide = atoi(g_cominfoarray.ElementAt(0).ElementAt(59)); m_pArray = NULL; m_bShowTimeOut = 1; m_bCanSave = 1; m_bGrowthTX = 0; m_nChoosePhotoType = 0; m_bChooseBig = 0; m_bFromLocal = 0; m_strStatusOfChoosePhoto = "未选"; } ChoosePhotoSkin2::ChoosePhotoSkin2(DWORD id, CWnd* pParent) : CDialog(id, pParent) { m_pBk = NULL; m_pParent = NULL; } void ChoosePhotoSkin2::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(ChoosePhotoSkin2) DDX_Control(pDX, IDC_COMBO1, m_combo1); DDX_Control(pDX, IDC_EDITzs3, m_editnum4); DDX_Control(pDX, IDC_EDITzs2, m_editnum3); DDX_Control(pDX, IDC_EDITzs, m_editnum2); DDX_Control(pDX, IDC_EDITmoney3, m_editnum1); DDX_Control(pDX, IDC_LIST3, m_List3); DDX_Control(pDX, IDC_LIST2, m_List2); DDX_Control(pDX, IDC_LIST1, m_List1); DDX_Text(pDX, IDC_EDITname1, m_name1); DDX_Text(pDX, IDC_EDITname2, m_name2); DDX_Text(pDX, IDC_EDITtime4, m_time4); DDX_Text(pDX, IDC_EDITwaiter3, m_waiter3); DDX_Text(pDX, IDC_EDITzs, m_takezs); DDX_Text(pDX, IDC_EDITzs2, m_taoxizs); DDX_Text(pDX, IDC_EDITzs3, m_choosezs); DDX_Text(pDX, IDC_EDITmoney3, m_money3); DDX_Text(pDX, IDC_EDITid, m_strOrderNumber); DDX_Text(pDX, IDC_EDITbz3, m_bz3); //}}AFX_DATA_MAP} } BEGIN_MESSAGE_MAP(ChoosePhotoSkin2, CDialog) //{{AFX_MSG_MAP(ChoosePhotoSkin2) ON_WM_PAINT() ON_WM_DESTROY() ON_WM_ERASEBKGND() ON_NOTIFY(NM_DBLCLK, IDC_LIST1, OnDblclkList1) ON_WM_CLOSE() ON_NOTIFY(NM_RCLICK, IDC_LIST1, OnRclickList1) ON_BN_CLICKED(IDC_BUTTON4, OnButton4) ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1) ON_WM_TIMER() //}}AFX_MSG_MAP ON_MESSAGE(WM_USER + 1101, OnBtnClick) ON_COMMAND_RANGE(IDM_MENUsp1 - 1, IDM_MENUsp1 + 200, OnCommandMenu) ON_MESSAGE(WM_USER + 200, UpdateTakeZS) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // ChoosePhotoSkin2 message handlers extern void SizeToContent(HWND hwnd, Image *img); #ifdef VC_60 void ChoosePhotoSkin2::OnBtnClick(WPARAM wParam, LPARAM lParam) { // WM_USER + 1101 // F5按键,显示删除相片 int id = lParam; id -= 99; switch (id) { case 1: // 查看全部相片按钮事件; case 2: // 查看选中的相片按钮事件; case 4: // F5查看删除的相片; if (m_mode == id - 1 && m_mode != 1)return; m_mode = id - 1; LoadPhotos(); break; case 3://查看未选按钮事件; if (m_mode == id - 1)return; m_sChooseFilter = ""; UpdateChooseZS(); GetNoSelPhoto(); m_mode = id - 1; LoadPhotos(); break; case 13: // 查看入册相片按钮事件; GetAlbumPhoto(); break; case 14: // 查看入底相片按钮事件; GetDiskPhoto(); break; case 15: // 效果图按钮事件; { ShowEffectDlg dlg; dlg.m_pPhotopatharray = this->GetCurArray(); dlg.DoModal(); } break; case 5: // 保存按钮事件; OnButton4(); break; case 9: { if (((MyBmpButton2*)m_picarray.ElementAt(8))->GetPushDown()) ((MyBmpButton2*)m_picarray.ElementAt(8))->SetPushDown(0); else ((MyBmpButton2*)m_picarray.ElementAt(8))->SetPushDown(1); ReLoadPhoto(); /* if(AfxMessageBox("删除后将无法恢复, 确认删除吗?", MB_YESNO|MB_ICONSTOP)!=IDYES)return ; CString sql; sql="update dindansp set [no2]='' where [id]='"+m_strOrderNumber+"'"; g_sendhead.bsql=1; g_pMainWnd->ProcessChatMessageRequest2(sql); if(g_bSendOK==0)return; CString path=m_path; path.TrimRight ('\\'); DeleteDirectory(path); GetPhotos(); LoadPhotos();*/ } break; case 10: { POSITION pos; pos = m_List1.GetFirstSelectedItemPosition(); if (pos == NULL) { AfxMessageBox("请先选中您要删除的照片!", MB_ICONINFORMATION); return; } if (AfxMessageBox("删除后将无法恢复, 确认删除吗?", MB_YESNO | MB_ICONSTOP) != IDYES)return; while (pos) { int iItem = m_List1.GetNextSelectedItem(pos); CString title = m_List1.GetItemText(iItem, 0); int pos = title.Find("\r\n"); if (pos != -1)title = title.Left(pos); if (m_mode2 == 1)//看设计 { if (title.Find("Flash") != -1) { title.Replace("Flash", "delgabook"); CString str = m_path + title; DeleteDirectory(str); GetPhotos(); LoadPhotos(); return; } } ::DeleteFile(m_path + title + ".jpg"); ::DeleteFile(m_path + "s" + title + ".jpg"); //////////////// CStringArray *pArray = GetCurArray(); CString path = pArray->ElementAt(iItem); path = path.Right(path.GetLength() - path.ReverseFind('\\') - 1); path = path.Left(path.ReverseFind('.')); if (CheckName(path)) { path = "," + path + ","; for (int i = 0; i < m_List2.GetItemCount(); i++) { CString no = m_noarray.ElementAt(i); if (no.Find(path) != -1) { path.TrimRight(","); no.Delete(no.Find(path), path.GetLength()); no.TrimLeft(","); no.TrimRight(","); m_List2.SetItemText(i, 4, no); no = "," + no + ","; m_noarray.SetAt(i, no); } } } } GetPhotos(); LoadPhotos(); } break; case 6: // 关闭按钮事件 ; if (m_bModify && m_bCanSave) { if (AfxMessageBox("提醒, 选片修改未保存, 是否保存后再退出?", MB_YESNO | MB_ICONINFORMATION) == IDYES) { OnButton4(); if (m_bSaveFail) { AfxMessageBox("连接服务器失败, 保存失败, 您可以在本机上重新进入选片恢复到选中状态!"); CDialog::OnCancel(); return; } return; } else { CString savepath; savepath.Format("%s\\%s.dat", g_mainpath, m_strOrderNumber); if (m_mode2)savepath.Format("%s\\%s-2.dat", g_mainpath, m_strOrderNumber); ::DeleteFile(savepath); } } CDialog::OnCancel(); break; case 11: if (m_selphotownd.GetSafeHwnd() == NULL) { m_selphotownd.m_id = m_strOrderNumber; m_selphotownd.m_rc = m_rcarray.ElementAt(6); m_selphotownd.Create(IDD_DLGShowSelPhoto, this); } m_selphotownd.ShowWindow(1); break; case 12: if (m_mode2) { ReplaceDesignNo dlg; dlg.m_id = this->m_strOrderNumber; dlg.DoModal(); } /* if(m_selphotownd2.GetSafeHwnd ()==NULL) { m_selphotownd2.m_id=m_id; m_selphotownd2.m_rc=m_rcarray.ElementAt (6); m_selphotownd2.Create (IDD_DLGShowSelPhoto2, this); } m_selphotownd2.ShowWindow (1);*/ break; } } #else LRESULT ChoosePhotoSkin2::OnBtnClick(WPARAM wParam, LPARAM lParam) { // WM_USER + 1101 // F5按键,显示删除相片 int id = lParam; id -= 99; switch (id) { case 1: // 查看全部相片按钮事件; case 2: // 查看选中的相片按钮事件; case 4: // F5查看删除的相片; if (m_mode == id - 1 && m_mode != 1) return 0; m_mode = id - 1; LoadPhotos(); break; case 3://查看未选按钮事件; if (m_mode == id - 1) return 0; m_sChooseFilter = ""; UpdateChooseZS(); GetNoSelPhoto(); m_mode = id - 1; LoadPhotos(); break; case 13: // 查看入册相片按钮事件; GetAlbumPhoto(); break; case 14: // 查看入底相片按钮事件; GetDiskPhoto(); break; case 15: // 效果图按钮事件; { ShowEffectDlg dlg; dlg.m_pPhotopatharray = this->GetCurArray(); dlg.DoModal(); } break; case 5: // 保存按钮事件; OnButton4(); break; case 9: { if (((MyBmpButton2*)m_picarray.ElementAt(8))->GetPushDown()) ((MyBmpButton2*)m_picarray.ElementAt(8))->SetPushDown(0); else ((MyBmpButton2*)m_picarray.ElementAt(8))->SetPushDown(1); ReLoadPhoto(); /* if(AfxMessageBox("删除后将无法恢复, 确认删除吗?", MB_YESNO|MB_ICONSTOP)!=IDYES)return ; CString sql; sql="update dindansp set [no2]='' where [id]='"+m_strOrderNumber+"'"; g_sendhead.bsql=1; g_pMainWnd->ProcessChatMessageRequest2(sql); if(g_bSendOK==0)return; CString path=m_path; path.TrimRight ('\\'); DeleteDirectory(path); GetPhotos(); LoadPhotos();*/ } break; case 10: { POSITION pos; pos = m_List1.GetFirstSelectedItemPosition(); if (pos == NULL) { AfxMessageBox("请先选中您要删除的照片!", MB_ICONINFORMATION); return 0; } if (AfxMessageBox("删除后将无法恢复, 确认删除吗?", MB_YESNO | MB_ICONSTOP) != IDYES)return 0; while (pos) { int iItem = m_List1.GetNextSelectedItem(pos); CString title = m_List1.GetItemText(iItem, 0); int pos = title.Find("\r\n"); if (pos != -1)title = title.Left(pos); if (m_mode2 == 1)//看设计 { if (title.Find("Flash") != -1) { title.Replace("Flash", "delgabook"); CString str = m_path + title; DeleteDirectory(str); GetPhotos(); LoadPhotos(); return 0; } } ::DeleteFile(m_path + title + ".jpg"); ::DeleteFile(m_path + "s" + title + ".jpg"); //////////////// CStringArray *pArray = GetCurArray(); CString path = pArray->ElementAt(iItem); path = path.Right(path.GetLength() - path.ReverseFind('\\') - 1); path = path.Left(path.ReverseFind('.')); if (CheckName(path)) { path = "," + path + ","; for (int i = 0; i < m_List2.GetItemCount(); i++) { CString no = m_noarray.ElementAt(i); if (no.Find(path) != -1) { path.TrimRight(","); no.Delete(no.Find(path), path.GetLength()); no.TrimLeft(","); no.TrimRight(","); m_List2.SetItemText(i, 4, no); no = "," + no + ","; m_noarray.SetAt(i, no); } } } } GetPhotos(); LoadPhotos(); } break; case 6: // 关闭按钮事件 ; if (m_bModify && m_bCanSave) { if (AfxMessageBox("提醒, 选片修改未保存, 是否保存后再退出?", MB_YESNO | MB_ICONINFORMATION) == IDYES) { OnButton4(); if (m_bSaveFail) { AfxMessageBox("连接服务器失败, 保存失败, 您可以在本机上重新进入选片恢复到选中状态!"); CDialog::OnCancel(); return 0; } return 0; } else { CString savepath; savepath.Format("%s\\%s.dat", g_mainpath, m_strOrderNumber); if (m_mode2)savepath.Format("%s\\%s-2.dat", g_mainpath, m_strOrderNumber); ::DeleteFile(savepath); } } CDialog::OnCancel(); break; case 11: if (m_selphotownd.GetSafeHwnd() == NULL) { m_selphotownd.m_id = m_strOrderNumber; m_selphotownd.m_rc = m_rcarray.ElementAt(6); m_selphotownd.Create(IDD_DLGShowSelPhoto, this); } m_selphotownd.ShowWindow(1); break; case 12: if (m_mode2) { ReplaceDesignNo dlg; dlg.m_id = this->m_strOrderNumber; dlg.DoModal(); } /* if(m_selphotownd2.GetSafeHwnd ()==NULL) { m_selphotownd2.m_id=m_id; m_selphotownd2.m_rc=m_rcarray.ElementAt (6); m_selphotownd2.Create (IDD_DLGShowSelPhoto2, this); } m_selphotownd2.ShowWindow (1);*/ break; } return 0; } #endif BOOL ChoosePhotoSkin2::OnInitDialog() //初始化选片*看设计 { CDialog::OnInitDialog(); #if 1 g_bInSkin = 1; m_ticks = ::GetTickCount(); if (g_cursorhand == NULL) g_cursorhand = AfxGetApp()->LoadCursor(IDC_CURSORHAND); BYTE *pData = NULL; BYTE *pDataBegin; //printf("Jeff:loadLia路径:%s\n\n",g_mainpath+"\\skin\\"+m_liapath);//Jeff Printf; if (!LoadLia(g_mainpath + "\\skin\\" + m_liapath, &pData, &pDataBegin, &m_pBk, m_hWnd)) { EndDialog(0); return false; } //printf("Jeff:g_resdata2.nPicCount=%d\n\n",g_resdata2.nPicCount); // Jeff Printf,这个nPicCount好像一直是15; for (int i = 0; i < g_resdata2.nPicCount; i++) { g_resdata2.rect[i].left *= g_fscalex; g_resdata2.rect[i].right *= g_fscalex; g_resdata2.rect[i].top *= g_fscaley; g_resdata2.rect[i].bottom *= g_fscaley; if (i == 8) g_resdata2.rect[i] = g_resdata2.rect[2]; else if (i == 9) g_resdata2.rect[i] = g_resdata2.rect[3]; else if (i == 10) g_resdata2.rect[i] = g_resdata2.rect[1]; if (g_resdata2.nPicBmpCount[i]) { MyBmpButton2 *pic = new MyBmpButton2; m_picarray.Add((DWORD)pic); CRect rc = g_resdata2.rect[i]; CString str; str.Format(_T("%d"), i + 1); pic->Create(str, WS_CHILD | WS_VISIBLE | BS_OWNERDRAW, rc, this, i + 100); pic->m_bmpcount = g_resdata2.nPicBmpCount[i]; pic->ReadBmp(&pData, NULL, this); #ifdef SZWNS_VERSION if(i==3 && m_mode2==0) { Image *img=NULL; LoadImageFromRes(&img, MAKEINTRESOURCE(IDR_JPG6), _T("JPG") ); delete pic->m_bmp; pic->m_bmp=img->Clone(); delete img; img=NULL; LoadImageFromRes(&img, MAKEINTRESOURCE(IDR_JPG7), _T("JPG") ); delete pic->m_bmpfocus; pic->m_bmpfocus=img->Clone(); delete img; img=NULL; LoadImageFromRes(&img, MAKEINTRESOURCE(IDR_JPG8), _T("JPG") ); delete pic->m_bmpfocused; pic->m_bmpfocused=img->Clone(); delete img; } #endif } else m_picarray.Add(NULL); m_rcarray.Add(g_resdata2.rect[i]); } delete[]pDataBegin; if (m_mode2)//看设计 { m_bHide = 0; // printf("Jeff:g_cominfoarray.ElementAt(0).ElementAt(86)=%s\n\n",g_cominfoarray.ElementAt(0).ElementAt(86)); // Jeff Printf; if (atoi(g_cominfoarray.ElementAt(0).ElementAt(86))) { ((MyBmpButton2*)m_picarray.ElementAt(3))->ShowWindow(SW_HIDE); CRect rc, rc2; ((MyBmpButton2*)m_picarray.ElementAt(3))->GetWindowRect(rc); ((MyBmpButton2*)m_picarray.ElementAt(1))->GetWindowRect(rc2); int dtx = rc.right - rc2.right; ScreenToClient(rc2); rc2.left += dtx; rc2.right += dtx; ((MyBmpButton2*)m_picarray.ElementAt(1))->MoveWindow(rc2); ((MyBmpButton2*)m_picarray.ElementAt(0))->GetWindowRect(rc2); ScreenToClient(rc2); rc2.left += dtx; rc2.right += dtx; ((MyBmpButton2*)m_picarray.ElementAt(0))->MoveWindow(rc2); } CRect rc, rc2; ((MyBmpButton2*)m_picarray.ElementAt(5))->GetWindowRect(rc); ((MyBmpButton2*)m_picarray.ElementAt(4))->GetWindowRect(rc2); int dtx = rc.right - rc2.right; rc2 = rc; // if(atoi(g_cominfoarray.ElementAt(0).ElementAt(86))==0) { float scale = 0.9; dtx *= scale; int wid = rc2.Width()*scale; int hei = rc2.Height()*scale; int dty = rc2.Height() - hei; dty /= 2; rc2.left = rc2.right - wid; rc2.top += dty; rc2.bottom = rc2.top + hei; } ScreenToClient(rc2); ((MyBmpButton2*)m_picarray.ElementAt(5))->MoveWindow(rc2); rc2.left -= dtx; rc2.right -= dtx; ((MyBmpButton2*)m_picarray.ElementAt(4))->MoveWindow(rc2); rc2.left -= dtx; rc2.right -= dtx; ((MyBmpButton2*)m_picarray.ElementAt(14))->MoveWindow(rc2); rc2.left -= dtx; rc2.right -= dtx; ((MyBmpButton2*)m_picarray.ElementAt(2))->MoveWindow(rc2); if (atoi(g_cominfoarray.ElementAt(0).ElementAt(86)) == 0) { rc2.left -= dtx; rc2.right -= dtx; ((MyBmpButton2*)m_picarray.ElementAt(3))->MoveWindow(rc2); } rc2.left -= dtx; rc2.right -= dtx; ((MyBmpButton2*)m_picarray.ElementAt(1))->MoveWindow(rc2); rc2.left -= dtx; rc2.right -= dtx; ((MyBmpButton2*)m_picarray.ElementAt(0))->MoveWindow(rc2); rc2.left -= dtx; rc2.right -= dtx; ((MyBmpButton2*)m_picarray.ElementAt(8))->MoveWindow(rc2); ((MyBmpButton2*)m_picarray.ElementAt(11))->ShowWindow(SW_HIDE); } else { if (atoi(g_cominfoarray.ElementAt(0).ElementAt(86))) { ((MyBmpButton2*)m_picarray.ElementAt(3))->ShowWindow(SW_HIDE); CRect rc, rc2; ((MyBmpButton2*)m_picarray.ElementAt(3))->GetWindowRect(rc); ((MyBmpButton2*)m_picarray.ElementAt(1))->GetWindowRect(rc2); int dtx = rc.right - rc2.right; ScreenToClient(rc2); rc2.left += dtx; rc2.right += dtx; ((MyBmpButton2*)m_picarray.ElementAt(1))->MoveWindow(rc2); ((MyBmpButton2*)m_picarray.ElementAt(0))->GetWindowRect(rc2); ScreenToClient(rc2); rc2.left += dtx; rc2.right += dtx; ((MyBmpButton2*)m_picarray.ElementAt(0))->MoveWindow(rc2); } } if (1)//m_mode2==0) { ((MyBmpButton2*)m_picarray.ElementAt(7))->ShowWindow(SW_HIDE); ((MyBmpButton2*)m_picarray.ElementAt(8))->ShowWindow(SW_HIDE); ((MyBmpButton2*)m_picarray.ElementAt(9))->ShowWindow(SW_HIDE); ((MyBmpButton2*)m_picarray.ElementAt(10))->ShowWindow(SW_HIDE); ((MyBmpButton2*)m_picarray.ElementAt(11))->ShowWindow(SW_HIDE); } else { ((MyBmpButton2*)m_picarray.ElementAt(7))->EnableWindow(0); ((MyBmpButton2*)m_picarray.ElementAt(0))->ShowWindow(SW_HIDE); ((MyBmpButton2*)m_picarray.ElementAt(1))->ShowWindow(SW_HIDE); ((MyBmpButton2*)m_picarray.ElementAt(2))->ShowWindow(SW_HIDE); ((MyBmpButton2*)m_picarray.ElementAt(3))->ShowWindow(SW_HIDE); ((MyBmpButton2*)m_picarray.ElementAt(11))->ShowWindow(SW_HIDE); if (IsHasRights2new(37) == 0) { ((MyBmpButton2*)m_picarray.ElementAt(8))->ShowWindow(SW_HIDE); ((MyBmpButton2*)m_picarray.ElementAt(9))->ShowWindow(SW_HIDE); } } if (m_mode2) { ((MyBmpButton2*)m_picarray.ElementAt(8))->ShowWindow(SW_SHOW); // ((MyBmpButton2*)m_picarray.ElementAt (8))->SetPushDown (1); ((MyBmpButton2*)m_picarray.ElementAt(12))->ShowWindow(SW_HIDE); ((MyBmpButton2*)m_picarray.ElementAt(13))->ShowWindow(SW_HIDE); } else//移按钮位置 { CRect rc, rc2; ((MyBmpButton2*)m_picarray.ElementAt(5))->GetWindowRect(rc); ((MyBmpButton2*)m_picarray.ElementAt(4))->GetWindowRect(rc2); int dtx = rc.right - rc2.right; rc2 = rc; // if(atoi(g_cominfoarray.ElementAt(0).ElementAt(86))==0) { float scale = 0.9; dtx *= scale; int wid = rc2.Width()*scale; int hei = rc2.Height()*scale; int dty = rc2.Height() - hei; dty /= 2; rc2.left = rc2.right - wid; rc2.top += dty; rc2.bottom = rc2.top + hei; } ScreenToClient(rc2); ((MyBmpButton2*)m_picarray.ElementAt(5))->MoveWindow(rc2); rc2.left -= dtx; rc2.right -= dtx; ((MyBmpButton2*)m_picarray.ElementAt(4))->MoveWindow(rc2); rc2.left -= dtx; rc2.right -= dtx; ((MyBmpButton2*)m_picarray.ElementAt(14))->MoveWindow(rc2); rc2.left -= dtx; rc2.right -= dtx; ((MyBmpButton2*)m_picarray.ElementAt(2))->MoveWindow(rc2); if (atoi(g_cominfoarray.ElementAt(0).ElementAt(86)) == 0) { rc2.left -= dtx; rc2.right -= dtx; ((MyBmpButton2*)m_picarray.ElementAt(3))->MoveWindow(rc2); } rc2.left -= dtx; rc2.right -= dtx; ((MyBmpButton2*)m_picarray.ElementAt(12))->MoveWindow(rc2); rc2.left -= dtx; rc2.right -= dtx; ((MyBmpButton2*)m_picarray.ElementAt(13))->MoveWindow(rc2); rc2.left -= dtx; rc2.right -= dtx; ((MyBmpButton2*)m_picarray.ElementAt(1))->MoveWindow(rc2); rc2.left -= dtx; rc2.right -= dtx; ((MyBmpButton2*)m_picarray.ElementAt(0))->MoveWindow(rc2); } #ifndef MNLS_VERSION ((MyBmpButton2*)m_picarray.ElementAt(7))->ShowWindow(SW_HIDE); ((MyBmpButton2*)m_picarray.ElementAt(7))->EnableWindow(0); Graphics graph(m_pBk); Image *img = NULL; if (m_mode2 == 0) ::LoadImageFromBuf(&img, g_mainpath + "\\图片\\标题-选片.jpg"); else ::LoadImageFromBuf(&img, g_mainpath + "\\图片\\标题-看设计.jpg"); if (img) { if (img->GetWidth() == 2000) { graph.SetSmoothingMode(SmoothingModeHighQuality); graph.DrawImage(img, 0, 0); } delete img; } #endif CRect listrc = m_rcarray.ElementAt(6); CRect rc; GetClientRect(rc); rc.top = listrc.top; m_List1.MoveWindow(rc); ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Jeff以上均为界面布局,过于混乱; // 下面的代码才是数据处理; //---------------------------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------------------------- CString path, str; if (m_mode2) { m_path = g_path3 + "\\"; m_path += m_strOrderNumber; m_path += "\\"; // printf("Jeff:m_path=%s\n\n",m_path); // Jeff Printf; } if (m_mode2)//看设计 { GetPhotos(); } else // 开始选片 { IsGrowthTx growthtxdlg; growthtxdlg.m_mode = 1; growthtxdlg.m_strOrderNumber = m_strOrderNumber; growthtxdlg.DoModal(); m_bGrowthTX = growthtxdlg.m_bGrowthTx; m_seltxname = growthtxdlg.m_seltxname; /*if(!growthtxdlg.m_seltxname.IsEmpty ()) { if(growthtxdlg.m_seltxname!="全部") { path+=growthtxdlg.m_seltxname; path+="\\"; } }*/ // HC:缓存,checkHC检查在本机是否存在缓存的相片; if (CheckHC()) // (一般返回0)这一步是查看C:\WINDOWS\System32\有没有lyfz的文件夹,以及该文件夹下是否有订单号文件夹和相片; { m_bFromLocal = 1; char path[MAX_PATH]; ::GetSystemDirectory(path, MAX_PATH); CString sysdir = path; sysdir += "\\lyfz"; ::CreateDirectory(sysdir, NULL); sysdir += "\\"; sysdir += m_strOrderNumber; using namespace helper_coffs; ffsco o; o.dirs(1); o.find(LPCSTR(sysdir), LPCSTR("*.jpg")); ffsco::typeT coo; ffsco::typeT::iterator it; coo = o.co_file(); for (it = coo.begin(); coo.end() != it; it++) { str = (*it).c_str(); //printf("Jeff:str=%s\n\n",str);// Jeff Printf if (str.GetAt(str.ReverseFind('\\') + 1) != 's' && str.GetAt(str.ReverseFind('\\') + 1) != 'm') { m_patharray1.Add(str); } } } //printf("Jeff:m_patharray1.GetSize()=%d\n\n",m_patharray1.GetSize());// Jeff Printf; if (m_patharray1.GetSize() == 0) // m_patharray1:查看全部相片. { if (IsPhoto2Exist())//如果订单文件夹存在; { SelBrunDevice dlg; dlg.m_mode = 1; if (dlg.DoModal() == IDOK) // m_nChoosePhotoType=0:原片+修片; =1:修片; =2:原片 m_nChoosePhotoType = dlg.m_sel; else m_nChoosePhotoType = 0; } else AfxMessageBox("温馨提示:\r\n未找到初修片,将使用原片选片", MB_ICONINFORMATION); CString path2; m_path = g_path1 + "\\"; m_path += m_strOrderNumber; m_path += "\\"; if (m_seltxname != "" && m_seltxname != "全部") { m_path += m_seltxname; m_path += "\\"; //printf("Jeff:m_path1=%s\n\n",m_path);// Jeff Printf; } if (m_nChoosePhotoType == 1) // 选片:选择修片文件夹; { m_path = g_path2 + "\\"; m_path += m_strOrderNumber; m_path += "\\"; //printf("Jeff:m_path2=%s\n\n",m_path);// Jeff Printf; } // 查找m_path下所有文件o.find(...); CString filename; using namespace helper_coffs; ffsco o; o.dirs(1); o.find(LPCSTR(m_path), LPCSTR("*.*")); ffsco::typeT coo; ffsco::typeT::iterator it; coo = o.co_file(); for (it = coo.begin(); coo.end() != it; it++) // 遍历文件夹; { path = (*it).c_str(); //printf("Jeff:path=%s\n\n",path);//Jeff Printf; if (path.GetAt(path.ReverseFind('\\') + 1) != 's' && path.GetAt(path.ReverseFind('\\') + 1) != 'm') { path.MakeLower(); filename = path.Right(path.GetLength() - path.ReverseFind('\\') - 1); if (filename.Find(".") != -1) filename = filename.Left(filename.Find(".")); if (!myisdigit(filename))continue; if (m_nChoosePhotoType == 1) // m_patharray1只添加修片文件夹; { #if JEFF_TEST_ON if(PathFileExists(path)) m_patharray1.Add(path); #else m_patharray1.Add(path); #endif //printf("Jeff:修片:m_patharray1.Add(%s)=%s\n\n",path);//Jeff Printf; } else // m_nChoosePhotoType=0,2 { path2 = path; if (m_nChoosePhotoType == 0) // 原片+修片; { path2.Replace("客户原片", "修好的片"); //printf("Jeff:原片+修片 path2=%s\n\n",path2); // Jeff Printf; } if (m_bGrowthTX == 0) { int pos = path2.Find(m_strOrderNumber); pos += m_strOrderNumber.GetLength(); int pos2 = path2.ReverseFind('\\'); path2 = path2.Left(pos) + path2.Right(path2.GetLength() - pos2); } if (m_nChoosePhotoType == 0 && PathFileExists(path2)) // 原片+修片; { m_patharray1.Add(path2); //printf("Jeff:原片+修片:m_patharray1.Add(%s)=%s\n\n",path2);//Jeff Printf; } else //if( m_nChoosePhotoType == 2 ) // 只有原片; { path2.Replace(".raw", ".jpg"); if (PathFileExists(path2)) { m_patharray1.Add(path2); continue; } path2.Replace(".nef", ".jpg"); if (PathFileExists(path2)) { m_patharray1.Add(path2); continue; } path2.Replace(".cr2", ".jpg"); if (PathFileExists(path2)) { m_patharray1.Add(path2); continue; } else { if (path.Right(3) != "jpg") continue; #if JEFF_TEST_ON if (PathFileExists(path)) m_patharray1.Add(path); #else m_patharray1.Add(path); #endif } } } } } if (m_nChoosePhotoType != 2) // Jeff:如果不是只查看原片; {//多种修好的效果 CString path2; path2 = g_path2 + "\\"; path2 += m_strOrderNumber; path2 += "\\"; //printf("Jeff:****paht2=%s\n\n",path2);//Jeff Printf;path2="修好的片" using namespace helper_coffs; ffsco o; o.dirs(0); o.find(LPCSTR(path2), LPCSTR("*.jpg")); ffsco::typeT coo; ffsco::typeT::iterator it; coo = o.co_file(); for (it = coo.begin(); coo.end() != it; it++) { path = (*it).c_str(); if (path.GetAt(path.ReverseFind('\\') + 1) != 's' && path.GetAt(path.ReverseFind('\\') + 1) != 'm') { path.MakeLower(); path2 = path.Right(path.GetLength() - path.ReverseFind('\\') - 1); if (path2.Find("-") != -1) { #if JEFF_TEST_ON if(PathFileExists(path)) m_patharray1.Add(path); #else m_patharray1.Add(path); #endif } } } } } if (m_patharray1.GetSize() && atoi(g_cominfoarray.ElementAt(0).ElementAt(61))) { int size = m_patharray1.GetSize() - 1; CString sTemp; int nPos; for (int i = 0; i < size; i++) { nPos = rand() % (size - i); sTemp = m_patharray1.ElementAt(size - i); m_patharray1.SetAt(size - i, m_patharray1.ElementAt(nPos)); m_patharray1.SetAt(nPos, sTemp); } } } m_ImageListThumb.Create(THUMBNAIL_WIDTH, THUMBNAIL_HEIGHT, ILC_COLOR24, 0, 1); m_List1.SetImageList(&m_ImageListThumb, LVSIL_NORMAL); m_List2.InitStyle(); m_List2.InsertColumn(0, _T("编号"), LVCFMT_LEFT, 45); m_List2.InsertColumn(1, _T("商品名称"), LVCFMT_LEFT, 150); m_List2.InsertColumn(2, _T("数量"), LVCFMT_LEFT, 45); m_List3.InitStyle(); m_List3.InsertColumn(0, _T("autoid"), LVCFMT_LEFT, 0); m_List3.InsertColumn(1, _T("编号"), LVCFMT_LEFT, 45); m_List3.InsertColumn(2, _T("商品名称"), LVCFMT_LEFT, 150); m_List3.InsertColumn(3, _T("价格"), LVCFMT_LEFT, 45); m_List3.InsertColumn(4, _T("数量"), LVCFMT_LEFT, 45); #ifdef LKAY_VERSION m_List3.InsertColumn(5,_T("P数"),LVCFMT_LEFT,55); m_List3.InsertColumn(6,_T("张数"),LVCFMT_LEFT,55); m_List3.InsertColumn(7,_T("照片编号"),LVCFMT_LEFT,365); #else m_List3.InsertColumn(5, _T("照片编号"), LVCFMT_LEFT, 365); #endif #else if( FALSE==InitializeUI() ) return FALSE; #endif if (m_mode2 == 0) { GetData(); if (m_checkstatus == "OK") { if (atoi(g_cominfoarray.ElementAt(0).ElementAt(85)) && IsHasRights2new(20) == 0) { Login2 dlg; if (dlg.DoModal() != IDOK) { MyBmpButton2 *btn = ((MyBmpButton2*)m_picarray.ElementAt(4)); btn->m_bmpdisable = btn->m_bmp->Clone(); Graphics graph(btn->m_bmpdisable); CPoint pt1, pt2, pt3; pt1.x = 0; pt1.y = 0; pt2.x = btn->m_bmp->GetWidth(); pt2.y = 0; pt3.x = 0; pt3.y = btn->m_bmp->GetHeight(); Point destinationPoints[] = { Point(pt1.x, pt1.y), // destination for upper-left point of original Point(pt2.x, pt2.y), // destination for upper-right point of original Point(pt3.x, pt3.y) }; // destination for lower-left point of original ColorMatrix colorMatrix = \ {0.33f, 0.33f, 0.33f, 0.0f, 0.0f, 0.33f, 0.33f, 0.33f, 0.0f, 0.0f, 0.33f, 0.33f, 0.33f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}; ImageAttributes imageAtt; imageAtt.SetColorMatrix(&colorMatrix, ColorMatrixFlagsDefault, ColorAdjustTypeBitmap); graph.DrawImage(btn->m_bmp, destinationPoints, 3, 0, 0, btn->m_bmp->GetWidth(), btn->m_bmp->GetHeight(), UnitPixel, &imageAtt); btn->EnableWindow(0); m_bCanSave = 0; // CDialog::OnCancel (); // return 1; } else if (IsHasRightsnew2(20, dlg.m_rights) == 0) { MyBmpButton2 *btn = ((MyBmpButton2*)m_picarray.ElementAt(4)); btn->m_bmpdisable = btn->m_bmp->Clone(); Graphics graph(btn->m_bmpdisable); CPoint pt1, pt2, pt3; pt1.x = 0; pt1.y = 0; pt2.x = btn->m_bmp->GetWidth(); pt2.y = 0; pt3.x = 0; pt3.y = btn->m_bmp->GetHeight(); Point destinationPoints[] = { Point(pt1.x, pt1.y), // destination for upper-left point of original Point(pt2.x, pt2.y), // destination for upper-right point of original Point(pt3.x, pt3.y) }; // destination for lower-left point of original ColorMatrix colorMatrix = \ {0.33f, 0.33f, 0.33f, 0.0f, 0.0f, 0.33f, 0.33f, 0.33f, 0.0f, 0.0f, 0.33f, 0.33f, 0.33f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}; ImageAttributes imageAtt; imageAtt.SetColorMatrix(&colorMatrix, ColorMatrixFlagsDefault, ColorAdjustTypeBitmap); graph.DrawImage(btn->m_bmp, destinationPoints, 3, 0, 0, btn->m_bmp->GetWidth(), btn->m_bmp->GetHeight(), UnitPixel, &imageAtt); btn->EnableWindow(0); m_bCanSave = 0; // CDialog::OnCancel (); // return 1; } } } if (!m_delphotos.IsEmpty()) { m_delphotos.TrimLeft(";"); m_delphotos.TrimRight(";"); m_delphotos = ";" + m_delphotos; m_delphotos += ";"; for (int i = m_patharray1.GetSize() - 1; i >= 0; i--) { CString no; no = m_patharray1.ElementAt(i); no = no.Right(no.GetLength() - no.ReverseFind('\\') - 1); no = no.Left(no.Find('.')); no = ";" + no; no += ";"; if (m_delphotos.Find(no) != -1) { no = m_patharray1.ElementAt(i); m_patharray1.RemoveAt(i); #if JEFF_TEST_ON if(PathFileExists(no)) m_patharray4.Add(no); #else m_patharray4.Add(no); #endif } } } if (m_pArray) { for (int i = 0; i < m_pArray->GetSize(); i += 2) { int j = 0; for ( j = 0; j < m_List2.GetItemCount(); j++) { if (m_pArray->ElementAt(i) == m_List2.GetItemText(j, 0)) { CString name = m_pArray->ElementAt(i + 1); int pos = name.Find("$"); if (pos != 0)continue; name.Delete(0, 1); pos = name.Find("."); while (pos != -1) { if (CheckOK(name.Left(pos))) { CString str = m_noarray.ElementAt(j); CString temp = name.Left(pos); temp = "," + temp + ","; if (str.Find(temp) == -1) { str += name.Left(pos); str.TrimLeft(","); str = "," + str + ","; m_noarray.SetAt(j, str); str.TrimLeft(","); str.TrimRight(","); m_List2.SetItemText(j, 4, str); } } name = name.Right(name.GetLength() - pos - 1); pos = name.Find("."); } if (CheckOK(name)) { CString str = m_noarray.ElementAt(j); CString temp = name; temp = "," + temp + ","; if (str.Find(temp) == -1) { str += name; str.TrimLeft(","); str = "," + str + ","; m_noarray.SetAt(j, str); str.TrimLeft(","); str.TrimRight(","); m_List2.SetItemText(j, 4, str); } } } } for (j = 0; j < m_List3.GetItemCount(); j++) { if (m_pArray->ElementAt(i) == m_List3.GetItemText(j, 0)) { CString name = m_pArray->ElementAt(i + 1); int pos = name.Find("$"); if (pos != 0)continue; name.Delete(0, 1); pos = name.Find("."); while (pos != -1) { if (CheckOK(name.Left(pos))) { CString str = m_no2array.ElementAt(j); CString temp = name.Left(pos); temp = "," + temp + ","; if (str.Find(temp) == -1) { str += name.Left(pos); str.TrimLeft(","); str = "," + str + ","; m_no2array.SetAt(j, str); str.TrimLeft(","); str.TrimRight(","); #ifdef LKAY_VERSION m_List3.SetItemText (j, 7, str); #else m_List3.SetItemText(j, 5, str); #endif } } name = name.Right(name.GetLength() - pos - 1); pos = name.Find("."); } if (CheckOK(name)) { CString str = m_no2array.ElementAt(j); CString temp = name; temp = "," + temp + ","; if (str.Find(temp) == -1) { str += name; str.TrimLeft(","); str = "," + str + ","; m_no2array.SetAt(j, str); str.TrimLeft(","); str.TrimRight(","); #ifdef LKAY_VERSION m_List3.SetItemText (j, 7, str); #else m_List3.SetItemText(j, 5, str); #endif } } } } } } } else { GetData2(); if (m_checkstatus != "未看") { if (atoi(g_cominfoarray.ElementAt(0).ElementAt(85)) && IsHasRights2new(20) == 0) { Login2 dlg; if (dlg.DoModal() != IDOK) { MyBmpButton2 *btn = ((MyBmpButton2*)m_picarray.ElementAt(4)); btn->m_bmpdisable = btn->m_bmp->Clone(); Graphics graph(btn->m_bmpdisable); CPoint pt1, pt2, pt3; pt1.x = 0; pt1.y = 0; pt2.x = btn->m_bmp->GetWidth(); pt2.y = 0; pt3.x = 0; pt3.y = btn->m_bmp->GetHeight(); Point destinationPoints[] = { Point(pt1.x, pt1.y), // destination for upper-left point of original Point(pt2.x, pt2.y), // destination for upper-right point of original Point(pt3.x, pt3.y) }; // destination for lower-left point of original ColorMatrix colorMatrix = \ {0.33f, 0.33f, 0.33f, 0.0f, 0.0f, 0.33f, 0.33f, 0.33f, 0.0f, 0.0f, 0.33f, 0.33f, 0.33f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}; ImageAttributes imageAtt; imageAtt.SetColorMatrix(&colorMatrix, ColorMatrixFlagsDefault, ColorAdjustTypeBitmap); graph.DrawImage(btn->m_bmp, destinationPoints, 3, 0, 0, btn->m_bmp->GetWidth(), btn->m_bmp->GetHeight(), UnitPixel, &imageAtt); btn->EnableWindow(0); m_bCanSave = 0; // CDialog::OnCancel (); // return 1; } else if (IsHasRightsnew2(20, dlg.m_rights) == 0) { MyBmpButton2 *btn = ((MyBmpButton2*)m_picarray.ElementAt(4)); btn->m_bmpdisable = btn->m_bmp->Clone(); Graphics graph(btn->m_bmpdisable); CPoint pt1, pt2, pt3; pt1.x = 0; pt1.y = 0; pt2.x = btn->m_bmp->GetWidth(); pt2.y = 0; pt3.x = 0; pt3.y = btn->m_bmp->GetHeight(); Point destinationPoints[] = { Point(pt1.x, pt1.y), // destination for upper-left point of original Point(pt2.x, pt2.y), // destination for upper-right point of original Point(pt3.x, pt3.y) }; // destination for lower-left point of original ColorMatrix colorMatrix = \ {0.33f, 0.33f, 0.33f, 0.0f, 0.0f, 0.33f, 0.33f, 0.33f, 0.0f, 0.0f, 0.33f, 0.33f, 0.33f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}; ImageAttributes imageAtt; imageAtt.SetColorMatrix(&colorMatrix, ColorMatrixFlagsDefault, ColorAdjustTypeBitmap); graph.DrawImage(btn->m_bmp, destinationPoints, 3, 0, 0, btn->m_bmp->GetWidth(), btn->m_bmp->GetHeight(), UnitPixel, &imageAtt); btn->EnableWindow(0); m_bCanSave = 0; // CDialog::OnCancel (); // return 1; } } } if (!m_delphotos.IsEmpty()) // add by Jeff:在加载时,先将已删除的相片从欲查看的相片中删除; { m_delphotos.TrimLeft(";"); m_delphotos.TrimRight(";"); m_delphotos = ";" + m_delphotos; m_delphotos += ";"; for (int i = m_patharray1.GetSize() - 1; i >= 0; i--) { CString no; no = m_patharray1.ElementAt(i); no = no.Right(no.GetLength() - no.ReverseFind('\\') - 1); no = no.Left(no.Find('.')); no = ";" + no; no += ";"; if (m_delphotos.Find(no) != -1) { no = m_patharray1.ElementAt(i); m_patharray1.RemoveAt(i); #if JEFF_TEST_ON if (PathFileExists(no)) m_patharray4.Add(no); #else m_patharray4.Add(no); #endif } } } } LoadPhotos();//在界面上显示图片; if (atoi(g_cominfoarray.ElementAt(0).ElementAt(95)) || g_cominfoarray.ElementAt(0).ElementAt(95) == "") { int timer1 = atoi(g_cominfoarray.ElementAt(0).ElementAt(96)); m_timer = atoi(g_cominfoarray.ElementAt(0).ElementAt(97)); if (timer1 == 0)timer1 = 60; if (m_timer == 0)m_timer = 20; SetTimer(1, timer1 * 60000, NULL); } return false; } BOOL ChoosePhotoSkin2::InitializeUI() { g_bInSkin = 1; m_ticks = ::GetTickCount(); if (g_cursorhand == NULL) g_cursorhand = AfxGetApp()->LoadCursor(IDC_CURSORHAND); BYTE *pData = NULL; BYTE *pDataBegin; //printf("Jeff:loadLia路径:%s\n\n",g_mainpath+"\\skin\\"+m_liapath);//Jeff Printf; if (!LoadLia(g_mainpath + "\\skin\\" + m_liapath, &pData, &pDataBegin, &m_pBk, m_hWnd)) { EndDialog(0); return false; } //printf("Jeff:g_resdata2.nPicCount=%d\n\n",g_resdata2.nPicCount); // Jeff Printf,这个nPicCount好像一直是15; for (int i = 0; i < g_resdata2.nPicCount; i++) { g_resdata2.rect[i].left *= g_fscalex; g_resdata2.rect[i].right *= g_fscalex; g_resdata2.rect[i].top *= g_fscaley; g_resdata2.rect[i].bottom *= g_fscaley; if (i == 8) g_resdata2.rect[i] = g_resdata2.rect[2]; else if (i == 9) g_resdata2.rect[i] = g_resdata2.rect[3]; else if (i == 10) g_resdata2.rect[i] = g_resdata2.rect[1]; if (g_resdata2.nPicBmpCount[i]) { MyBmpButton2 *pic = new MyBmpButton2; m_picarray.Add((DWORD)pic); CRect rc = g_resdata2.rect[i]; CString str; str.Format(_T("%d"), i + 1); pic->Create(str, WS_CHILD | WS_VISIBLE | BS_OWNERDRAW, rc, this, i + 100); pic->m_bmpcount = g_resdata2.nPicBmpCount[i]; pic->ReadBmp(&pData, NULL, this); #ifdef SZWNS_VERSION if(i==3 && m_mode2==0) { Image *img=NULL; LoadImageFromRes(&img, MAKEINTRESOURCE(IDR_JPG6), _T("JPG") ); delete pic->m_bmp; pic->m_bmp=img->Clone(); delete img; img=NULL; LoadImageFromRes(&img, MAKEINTRESOURCE(IDR_JPG7), _T("JPG") ); delete pic->m_bmpfocus; pic->m_bmpfocus=img->Clone(); delete img; img=NULL; LoadImageFromRes(&img, MAKEINTRESOURCE(IDR_JPG8), _T("JPG") ); delete pic->m_bmpfocused; pic->m_bmpfocused=img->Clone(); delete img; } #endif } else m_picarray.Add(NULL); m_rcarray.Add(g_resdata2.rect[i]); } delete[]pDataBegin; if (m_mode2)//看设计 { m_bHide = 0; // printf("Jeff:g_cominfoarray.ElementAt(0).ElementAt(86)=%s\n\n",g_cominfoarray.ElementAt(0).ElementAt(86)); // Jeff Printf; if (atoi(g_cominfoarray.ElementAt(0).ElementAt(86))) { ((MyBmpButton2*)m_picarray.ElementAt(3))->ShowWindow(SW_HIDE); CRect rc, rc2; ((MyBmpButton2*)m_picarray.ElementAt(3))->GetWindowRect(rc); ((MyBmpButton2*)m_picarray.ElementAt(1))->GetWindowRect(rc2); int dtx = rc.right - rc2.right; ScreenToClient(rc2); rc2.left += dtx; rc2.right += dtx; ((MyBmpButton2*)m_picarray.ElementAt(1))->MoveWindow(rc2); ((MyBmpButton2*)m_picarray.ElementAt(0))->GetWindowRect(rc2); ScreenToClient(rc2); rc2.left += dtx; rc2.right += dtx; ((MyBmpButton2*)m_picarray.ElementAt(0))->MoveWindow(rc2); } CRect rc, rc2; ((MyBmpButton2*)m_picarray.ElementAt(5))->GetWindowRect(rc); ((MyBmpButton2*)m_picarray.ElementAt(4))->GetWindowRect(rc2); int dtx = rc.right - rc2.right; rc2 = rc; // if(atoi(g_cominfoarray.ElementAt(0).ElementAt(86))==0) { float scale = 0.9; dtx *= scale; int wid = rc2.Width()*scale; int hei = rc2.Height()*scale; int dty = rc2.Height() - hei; dty /= 2; rc2.left = rc2.right - wid; rc2.top += dty; rc2.bottom = rc2.top + hei; } ScreenToClient(rc2); ((MyBmpButton2*)m_picarray.ElementAt(5))->MoveWindow(rc2); rc2.left -= dtx; rc2.right -= dtx; ((MyBmpButton2*)m_picarray.ElementAt(4))->MoveWindow(rc2); rc2.left -= dtx; rc2.right -= dtx; ((MyBmpButton2*)m_picarray.ElementAt(14))->MoveWindow(rc2); rc2.left -= dtx; rc2.right -= dtx; ((MyBmpButton2*)m_picarray.ElementAt(2))->MoveWindow(rc2); if (atoi(g_cominfoarray.ElementAt(0).ElementAt(86)) == 0) { rc2.left -= dtx; rc2.right -= dtx; ((MyBmpButton2*)m_picarray.ElementAt(3))->MoveWindow(rc2); } rc2.left -= dtx; rc2.right -= dtx; ((MyBmpButton2*)m_picarray.ElementAt(1))->MoveWindow(rc2); rc2.left -= dtx; rc2.right -= dtx; ((MyBmpButton2*)m_picarray.ElementAt(0))->MoveWindow(rc2); rc2.left -= dtx; rc2.right -= dtx; ((MyBmpButton2*)m_picarray.ElementAt(8))->MoveWindow(rc2); ((MyBmpButton2*)m_picarray.ElementAt(11))->ShowWindow(SW_HIDE); } else { if (atoi(g_cominfoarray.ElementAt(0).ElementAt(86))) { ((MyBmpButton2*)m_picarray.ElementAt(3))->ShowWindow(SW_HIDE); CRect rc, rc2; ((MyBmpButton2*)m_picarray.ElementAt(3))->GetWindowRect(rc); ((MyBmpButton2*)m_picarray.ElementAt(1))->GetWindowRect(rc2); int dtx = rc.right - rc2.right; ScreenToClient(rc2); rc2.left += dtx; rc2.right += dtx; ((MyBmpButton2*)m_picarray.ElementAt(1))->MoveWindow(rc2); ((MyBmpButton2*)m_picarray.ElementAt(0))->GetWindowRect(rc2); ScreenToClient(rc2); rc2.left += dtx; rc2.right += dtx; ((MyBmpButton2*)m_picarray.ElementAt(0))->MoveWindow(rc2); } } if (1)//m_mode2==0) { ((MyBmpButton2*)m_picarray.ElementAt(7))->ShowWindow(SW_HIDE); ((MyBmpButton2*)m_picarray.ElementAt(8))->ShowWindow(SW_HIDE); ((MyBmpButton2*)m_picarray.ElementAt(9))->ShowWindow(SW_HIDE); ((MyBmpButton2*)m_picarray.ElementAt(10))->ShowWindow(SW_HIDE); ((MyBmpButton2*)m_picarray.ElementAt(11))->ShowWindow(SW_HIDE); } else { ((MyBmpButton2*)m_picarray.ElementAt(7))->EnableWindow(0); ((MyBmpButton2*)m_picarray.ElementAt(0))->ShowWindow(SW_HIDE); ((MyBmpButton2*)m_picarray.ElementAt(1))->ShowWindow(SW_HIDE); ((MyBmpButton2*)m_picarray.ElementAt(2))->ShowWindow(SW_HIDE); ((MyBmpButton2*)m_picarray.ElementAt(3))->ShowWindow(SW_HIDE); ((MyBmpButton2*)m_picarray.ElementAt(11))->ShowWindow(SW_HIDE); if (IsHasRights2new(37) == 0) { ((MyBmpButton2*)m_picarray.ElementAt(8))->ShowWindow(SW_HIDE); ((MyBmpButton2*)m_picarray.ElementAt(9))->ShowWindow(SW_HIDE); } } if (m_mode2) { ((MyBmpButton2*)m_picarray.ElementAt(8))->ShowWindow(SW_SHOW); // ((MyBmpButton2*)m_picarray.ElementAt (8))->SetPushDown (1); ((MyBmpButton2*)m_picarray.ElementAt(12))->ShowWindow(SW_HIDE); ((MyBmpButton2*)m_picarray.ElementAt(13))->ShowWindow(SW_HIDE); } else//移按钮位置 { CRect rc, rc2; ((MyBmpButton2*)m_picarray.ElementAt(5))->GetWindowRect(rc); ((MyBmpButton2*)m_picarray.ElementAt(4))->GetWindowRect(rc2); int dtx = rc.right - rc2.right; rc2 = rc; // if(atoi(g_cominfoarray.ElementAt(0).ElementAt(86))==0) { float scale = 0.9; dtx *= scale; int wid = rc2.Width()*scale; int hei = rc2.Height()*scale; int dty = rc2.Height() - hei; dty /= 2; rc2.left = rc2.right - wid; rc2.top += dty; rc2.bottom = rc2.top + hei; } ScreenToClient(rc2); ((MyBmpButton2*)m_picarray.ElementAt(5))->MoveWindow(rc2); rc2.left -= dtx; rc2.right -= dtx; ((MyBmpButton2*)m_picarray.ElementAt(4))->MoveWindow(rc2); rc2.left -= dtx; rc2.right -= dtx; ((MyBmpButton2*)m_picarray.ElementAt(14))->MoveWindow(rc2); rc2.left -= dtx; rc2.right -= dtx; ((MyBmpButton2*)m_picarray.ElementAt(2))->MoveWindow(rc2); if (atoi(g_cominfoarray.ElementAt(0).ElementAt(86)) == 0) { rc2.left -= dtx; rc2.right -= dtx; ((MyBmpButton2*)m_picarray.ElementAt(3))->MoveWindow(rc2); } rc2.left -= dtx; rc2.right -= dtx; ((MyBmpButton2*)m_picarray.ElementAt(12))->MoveWindow(rc2); rc2.left -= dtx; rc2.right -= dtx; ((MyBmpButton2*)m_picarray.ElementAt(13))->MoveWindow(rc2); rc2.left -= dtx; rc2.right -= dtx; ((MyBmpButton2*)m_picarray.ElementAt(1))->MoveWindow(rc2); rc2.left -= dtx; rc2.right -= dtx; ((MyBmpButton2*)m_picarray.ElementAt(0))->MoveWindow(rc2); } #ifndef MNLS_VERSION ((MyBmpButton2*)m_picarray.ElementAt(7))->ShowWindow(SW_HIDE); ((MyBmpButton2*)m_picarray.ElementAt(7))->EnableWindow(0); Graphics graph(m_pBk); Image *img = NULL; if (m_mode2 == 0) ::LoadImageFromBuf(&img, g_mainpath + "\\图片\\标题-选片.jpg"); else ::LoadImageFromBuf(&img, g_mainpath + "\\图片\\标题-看设计.jpg"); if (img) { if (img->GetWidth() == 2000) { graph.SetSmoothingMode(SmoothingModeHighQuality); graph.DrawImage(img, 0, 0); } delete img; } #endif CRect listrc = m_rcarray.ElementAt(6); CRect rc; GetClientRect(rc); rc.top = listrc.top; m_List1.MoveWindow(rc); CString path, str; if (m_mode2) { m_path = g_path3 + "\\"; m_path += m_strOrderNumber; m_path += "\\"; // printf("Jeff:m_path=%s\n\n",m_path); // Jeff Printf; } if (m_mode2)//看设计 { GetPhotos(); } else { IsGrowthTx growthtxdlg; growthtxdlg.m_mode = 1; growthtxdlg.m_strOrderNumber = m_strOrderNumber; growthtxdlg.DoModal(); m_bGrowthTX = growthtxdlg.m_bGrowthTx; m_seltxname = growthtxdlg.m_seltxname; /*if(!growthtxdlg.m_seltxname.IsEmpty ()) { if(growthtxdlg.m_seltxname!="全部") { path+=growthtxdlg.m_seltxname; path+="\\"; } }*/ if (CheckHC()) { m_bFromLocal = 1; char path[MAX_PATH]; ::GetSystemDirectory(path, MAX_PATH); CString sysdir = path; sysdir += "\\lyfz"; ::CreateDirectory(sysdir, NULL); sysdir += "\\"; sysdir += m_strOrderNumber; using namespace helper_coffs; ffsco o; o.dirs(1); o.find(LPCSTR(sysdir), LPCSTR("*.jpg")); ffsco::typeT coo; ffsco::typeT::iterator it; coo = o.co_file(); for (it = coo.begin(); coo.end() != it; it++) { str = (*it).c_str(); // printf("Jeff:str=%s\n\n",str);// Jeff Printf if (str.GetAt(str.ReverseFind('\\') + 1) != 's' && str.GetAt(str.ReverseFind('\\') + 1) != 'm') { m_patharray1.Add(str); } } } if (m_patharray1.GetSize() == 0) { if (IsPhoto2Exist()) { SelBrunDevice dlg; dlg.m_mode = 1; if (dlg.DoModal() == IDOK) m_nChoosePhotoType = dlg.m_sel; else m_nChoosePhotoType = 0; //m_nChoosePhotoType=0 原片+修片 1:修片 2:原片 } else AfxMessageBox("温馨提示:\r\n未找到初修片,将使用原片选片", MB_ICONINFORMATION); { CString path2; m_path = g_path1 + "\\"; m_path += m_strOrderNumber; m_path += "\\"; if (m_seltxname != "" && m_seltxname != "全部") { m_path += m_seltxname; m_path += "\\"; } if (m_nChoosePhotoType == 1) { m_path = g_path2 + "\\"; m_path += m_strOrderNumber; m_path += "\\"; } CString filename; using namespace helper_coffs; ffsco o; o.dirs(1); o.find(LPCSTR(m_path), LPCSTR("*.*")); ffsco::typeT coo; ffsco::typeT::iterator it; coo = o.co_file(); for (it = coo.begin(); coo.end() != it; it++) { path = (*it).c_str(); if (path.GetAt(path.ReverseFind('\\') + 1) != 's' && path.GetAt(path.ReverseFind('\\') + 1) != 'm') { path.MakeLower(); filename = path.Right(path.GetLength() - path.ReverseFind('\\') - 1); if (filename.Find(".") != -1) filename = filename.Left(filename.Find(".")); if (!myisdigit(filename))continue; if (m_nChoosePhotoType == 1) { #if JEFF_TEST_ON if (PathFileExists(path)) m_patharray1.Add(path); #else m_patharray1.Add(path); #endif } else { path2 = path; if (m_nChoosePhotoType == 0) path2.Replace("客户原片", "修好的片"); if (m_bGrowthTX == 0) { int pos = path2.Find(m_strOrderNumber); pos += m_strOrderNumber.GetLength(); int pos2 = path2.ReverseFind('\\'); path2 = path2.Left(pos) + path2.Right(path2.GetLength() - pos2); } if (m_nChoosePhotoType == 0 && ::PathFileExists(path2)) { m_patharray1.Add(path2); } else { path2.Replace(".raw", ".jpg"); if (::PathFileExists(path2)) { m_patharray1.Add(path2); continue; } path2.Replace(".nef", ".jpg"); if (PathFileExists(path2)) { m_patharray1.Add(path2); continue; } path2.Replace(".cr2", ".jpg"); if (PathFileExists(path2)) { m_patharray1.Add(path2); continue; } else { if (path.Right(3) != "jpg") continue; #if JEFF_TEST_ON if (PathFileExists(path)) m_patharray1.Add(path); #else m_patharray1.Add(path); #endif } } } } } } // if(0) {//多种修好的效果 CString path2; path2 = g_path2 + "\\"; path2 += m_strOrderNumber; path2 += "\\"; using namespace helper_coffs; ffsco o; o.dirs(0); o.find(LPCSTR(path2), LPCSTR("*.jpg")); ffsco::typeT coo; ffsco::typeT::iterator it; coo = o.co_file(); for (it = coo.begin(); coo.end() != it; it++) { path = (*it).c_str(); if (path.GetAt(path.ReverseFind('\\') + 1) != 's' && path.GetAt(path.ReverseFind('\\') + 1) != 'm') { path.MakeLower(); path2 = path.Right(path.GetLength() - path.ReverseFind('\\') - 1); if (path2.Find("-") != -1) { #if JEFF_TEST_ON if (PathFileExists(path)) m_patharray1.Add(path); #else m_patharray1.Add(path); #endif } } } } } if (m_patharray1.GetSize() && atoi(g_cominfoarray.ElementAt(0).ElementAt(61))) { int size = m_patharray1.GetSize() - 1; CString sTemp; int nPos; for (int i = 0; i < size; i++) { nPos = rand() % (size - i); sTemp = m_patharray1.ElementAt(size - i); m_patharray1.SetAt(size - i, m_patharray1.ElementAt(nPos)); m_patharray1.SetAt(nPos, sTemp); } } } m_ImageListThumb.Create(THUMBNAIL_WIDTH, THUMBNAIL_HEIGHT, ILC_COLOR24, 0, 1); m_List1.SetImageList(&m_ImageListThumb, LVSIL_NORMAL); m_List2.InitStyle(); m_List2.InsertColumn(0, _T("编号"), LVCFMT_LEFT, 45); m_List2.InsertColumn(1, _T("商品名称"), LVCFMT_LEFT, 150); m_List2.InsertColumn(2, _T("数量"), LVCFMT_LEFT, 45); m_List3.InitStyle(); m_List3.InsertColumn(0, _T("autoid"), LVCFMT_LEFT, 0); m_List3.InsertColumn(1, _T("编号"), LVCFMT_LEFT, 45); m_List3.InsertColumn(2, _T("商品名称"), LVCFMT_LEFT, 150); m_List3.InsertColumn(3, _T("价格"), LVCFMT_LEFT, 45); m_List3.InsertColumn(4, _T("数量"), LVCFMT_LEFT, 45); #ifdef LKAY_VERSION m_List3.InsertColumn(5,_T("P数"),LVCFMT_LEFT,55); m_List3.InsertColumn(6,_T("张数"),LVCFMT_LEFT,55); m_List3.InsertColumn(7,_T("照片编号"),LVCFMT_LEFT,365); #else m_List3.InsertColumn(5, _T("照片编号"), LVCFMT_LEFT, 365); #endif } void ChoosePhotoSkin2::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 ChoosePhotoSkin2::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 ChoosePhotoSkin2::OnDestroy() { try { TerminateThread(); if (m_pBk)delete m_pBk; MyBmpButton2 *pic = NULL; for (int i = 0; i < m_picarray.GetSize(); i++) { pic = (MyBmpButton2*)m_picarray.ElementAt(i); if (pic) { pic->DestroyWindow(); delete pic; } } m_picarray.RemoveAll(); if (m_selphotownd.GetSafeHwnd()) { m_selphotownd.DestroyWindow(); } if (m_selphotownd2.GetSafeHwnd()) { m_selphotownd2.DestroyWindow(); } /* char path[MAX_PATH]; ::GetSystemDirectory (path, MAX_PATH); CString sysdir=path; sysdir+="\\lyfz"; ::DeleteDirectory (sysdir);*/ CDialog::OnDestroy(); } catch (...) { } } BOOL ChoosePhotoSkin2::OnEraseBkgnd(CDC* pDC) { return 1; } void ChoosePhotoSkin2::SetLiaPath(CString path) { m_liapath = path; } BEGIN_EVENTSINK_MAP(ChoosePhotoSkin2, CDialog) ON_EVENT(ChoosePhotoSkin2, 100, 150 /* FSCommand */, OnFSCommandShockwaveflash1, VTS_BSTR VTS_BSTR) END_EVENTSINK_MAP() void ChoosePhotoSkin2::OnFSCommandShockwaveflash1(LPCTSTR command, LPCTSTR args) { } //extern void LoadImageFromFile(Image **img, CString path); unsigned __stdcall LoadThumbNail3(LPVOID lpParam) { ChoosePhotoSkin2 *pDlg = (ChoosePhotoSkin2*)lpParam; CListCtrl *ListCtrl = &pDlg->m_List1; try { CImageList* pImgList = &pDlg->m_ImageListThumb; // reset our image list for (int i = 0; i < pImgList->GetImageCount(); i++) pImgList->Remove(i); // remove all items from list view ListCtrl->DeleteAllItems(); pImgList->SetImageCount(pDlg->m_vFileName.size()); // TCHAR path[MAX_PATH]; vector::iterator iter; // Set redraw to FALSE to avoid flickering during adding new items ListCtrl->SetRedraw(FALSE); int nIndex = 0; CString str, spath; if (pDlg->m_mode2 == 0) // 选片; { for (iter = pDlg->m_vFileName.begin(); iter != pDlg->m_vFileName.end() && pDlg->m_bTerminate != true; iter++, nIndex++) { str = *iter; str = str.Right(str.GetLength() - str.ReverseFind('\\') - 1); str = str.Left(str.Find('.')); str += pDlg->GetSelName(str); ListCtrl->InsertItem(nIndex, str, nIndex); } } else // 看设计; { for (iter = pDlg->m_vFileName.begin(); iter != pDlg->m_vFileName.end() && pDlg->m_bTerminate != true; iter++, nIndex++) { str = *iter; spath.Empty(); if (str.Left(str.ReverseFind('\\') + 1) != pDlg->m_path) { spath = str.Left(str.ReverseFind('\\') + 1); spath = spath.Right(spath.GetLength() - pDlg->m_path.GetLength()); } str = str.Right(str.GetLength() - str.ReverseFind('\\') - 1); if (str.Find("delgabook") != -1) { str.TrimRight("\\"); str = str.Right(str.GetLength() - str.ReverseFind('\\') - 1); str.Replace("delgabook", "Flash"); ListCtrl->InsertItem(nIndex, str, nIndex); } else { str = spath + str.Left(str.GetLength() - 4); CString temp = pDlg->GetSelName(str); ListCtrl->InsertItem(nIndex, str + temp, nIndex); } } } ListCtrl->SetRedraw(TRUE); ListCtrl->Invalidate(); const float fRatio = (float)THUMBNAIL_HEIGHT / THUMBNAIL_WIDTH; int XDest, YDest, nDestWidth, nDestHeight; nIndex = 0; SolidBrush whitebrush(Color(255, 255, 255, 255)); Image *pHideImg = NULL; Bitmap *pNULLBmp = new Bitmap(THUMBNAIL_WIDTH, THUMBNAIL_HEIGHT, PixelFormat24bppRGB); Graphics graph2(pNULLBmp); graph2.Clear(Color(255, 0, 0, 0)); for (iter = pDlg->m_vFileName.begin(); iter != pDlg->m_vFileName.end() && pDlg->m_bTerminate != true; iter++, nIndex++) { // Load Image File Image *image = NULL; Bitmap *pBmp = NULL; str = *iter; spath = str.Left(str.ReverseFind('\\') + 1); spath += "s"; spath += str.Right(str.GetLength() - str.ReverseFind('\\') - 1); // if(pDlg->m_mode2==0 && pDlg->m_bHide && pHideImg==NULL) if (pDlg->m_bHide && pHideImg == NULL) { LoadImageFromRes(&pHideImg, MAKEINTRESOURCE(IDR_JPG5), _T("JPG")); } BOOL bNullimg = 0; if (pHideImg == NULL) { // if(atoi(g_cominfoarray.ElementAt(0).ElementAt(109))==0 && pDlg->m_mode2==0) if (0)//pDlg->m_bFromLocal && pDlg->m_mode2==0) { spath = spath.Right(spath.GetLength() - spath.ReverseFind('\\')); CString stemp; stemp = g_path2 + "\\"; stemp += pDlg->m_strOrderNumber; stemp += "\\"; stemp += spath; if (PathFileExists(stemp)) spath = stemp; else { stemp = g_path1 + "\\"; stemp += pDlg->m_strOrderNumber; stemp += "\\"; stemp += spath; spath = stemp; } } if (PathFileExists(spath)) { ::LoadImageFromBuf(&image, spath); } else if (PathFileExists(str)) ::LoadImageFromBuf(&image, str); else { bNullimg = 1; image = pNULLBmp; } if (image == NULL)continue; if (image->GetWidth() == 0) continue; int orientation = GetOrientation(image); if (orientation == 8) image->RotateFlip(Rotate270FlipNone); else if (orientation == 6) image->RotateFlip(Rotate90FlipNone); } else image = pHideImg; // Calculate Rect to fit to canvas const float fImgRatio = (float)image->GetHeight() / image->GetWidth(); if (fImgRatio > fRatio) { nDestWidth = THUMBNAIL_HEIGHT / fImgRatio; XDest = (THUMBNAIL_WIDTH - nDestWidth) / 2; YDest = 0; nDestHeight = THUMBNAIL_HEIGHT; } else { XDest = 0; nDestWidth = THUMBNAIL_WIDTH; nDestHeight = THUMBNAIL_WIDTH*fImgRatio; YDest = (THUMBNAIL_HEIGHT - nDestHeight) / 2; } pBmp = new Bitmap(THUMBNAIL_WIDTH, THUMBNAIL_HEIGHT, PixelFormat24bppRGB); Graphics graph2(pBmp); graph2.Clear(Color(255, 192, 192, 192)); graph2.FillRectangle(&whitebrush, 1, 1, THUMBNAIL_WIDTH - 2, THUMBNAIL_HEIGHT - 2); Graphics graph(pBmp); Rect desRect(XDest, YDest, nDestWidth, nDestHeight); // Draw Image graph.DrawImage(image, desRect, 0, 0, image->GetWidth(), image->GetHeight(), UnitPixel); if (pHideImg == NULL && bNullimg == 0) delete image; // Attach to Bitmap and Replace image in CImageList CBitmap bitmap; HBITMAP hbmp; pBmp->GetHBITMAP(Color(255, 255, 255, 255), &hbmp); bitmap.Attach(hbmp); pImgList->Replace(nIndex, &bitmap, NULL); delete pBmp; // Redraw only a current item for removing flickering and fast speed. ListCtrl->RedrawItems(nIndex, nIndex); // Release used DC and Object } delete pNULLBmp; if (pHideImg)delete pHideImg; ListCtrl->Invalidate(); pDlg->m_bRunning = false; pDlg->m_bTerminate = false; pDlg->PostMessage(WM_USER + 200, 0, 0); _endthreadex(0); return 0; } catch (...) { ListCtrl->Invalidate(); pDlg->m_bRunning = false; pDlg->m_bTerminate = false; pDlg->PostMessage(WM_USER + 200, 0, 0); _endthreadex(0); } } void ChoosePhotoSkin2::LoadThumbImages() { TerminateThread(); m_hThread = (HANDLE)_beginthreadex(NULL, 0, LoadThumbNail3, (LPVOID)this, 0/* CREATE_SUSPENDED*/, &m_dwThreadID); m_bRunning = true; } BOOL ChoosePhotoSkin2::TerminateThread() { if (!m_bRunning) return TRUE; m_bTerminate = true; for (;;) { if (::WaitForSingleObject(m_hThread, 0) == WAIT_OBJECT_0) break; MSG msg; while (::PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE)) { if (!AfxGetApp()->PumpMessage()) break; } } ::CloseHandle(m_hThread); return TRUE; } //------------------------------------------------------------------ // Remark by Jeff 2014.11.03 // 函数:OnDblclkList1 // 描述:处理双击和回车时的图片显示效果;与函数名本身的表达意义不一致,导致歧义! // 参数: // 返回: //------------------------------------------------------------------ void ChoosePhotoSkin2::OnDblclkList1() { // 1.从双击中的列表项中获取相片名; POSITION pos; pos = m_List1.GetFirstSelectedItemPosition(); if (pos == NULL) { return; } int iItem = m_List1.GetNextSelectedItem(pos); #if JEFF_TEST_OFF // 双击列表根本就不做不到多选多击,双击只会选中一个,故GetNextSelectedItem(pos)后,pos=NULL // 但是这个函数的作用并不是跟函数名一致,有其他地方用到。 #else // 这一块代码是用于处理回车键; CArrayposarray; posarray.Add(iItem); // 获取剩下的图片位置; while (pos) { int iItem = m_List1.GetNextSelectedItem(pos); posarray.Add(iItem); if (posarray.GetSize() > 3)break; } if (posarray.GetSize() >= 2) { CStringArray *m_pPtahArray = GetCurArray(); CComparePhoto dlg; dlg.m_path1 = m_pPtahArray->ElementAt(posarray.ElementAt(0)); dlg.m_path2 = m_pPtahArray->ElementAt(posarray.ElementAt(1)); if (posarray.GetSize() > 2) dlg.m_path3 = m_pPtahArray->ElementAt(posarray.ElementAt(2)); if (posarray.GetSize() > 3) dlg.m_path4 = m_pPtahArray->ElementAt(posarray.ElementAt(3)); dlg.DoModal(); return; } #endif if (m_mode2 == 1)//看设计 { CString title = m_List1.GetItemText(iItem, 0); if (title.Find("Flash") != -1) { title.Replace("Flash", "delgabook"); CString str = m_path + title + "\\delgaBook.exe"; ShellExecute(NULL, _T("open"), str, NULL, NULL, SW_SHOWNORMAL); return; } } m_showpichwd = NULL; // 双击小图查看大图; ShowPic22 dlg; if (m_mode2 == 1) // ==1 看设计; dlg.m_bShowName = 1; dlg.m_pParent = this; dlg.m_pos = iItem; if (m_mode2 == 0 && atoi(g_cominfoarray.ElementAt(0).ElementAt(100))) { CStringArray saCurrentImagePath; // 当前列表相片; CStringArray arraymsize; // 对应的"m"相片路径; CStringArray *pArray = GetCurArray(); saCurrentImagePath.Copy(*pArray); for (int i = 0; i < saCurrentImagePath.GetSize(); i++) { CString str = saCurrentImagePath.ElementAt(i); CString spath = str.Left(str.ReverseFind('\\') + 1); spath += "m"; spath += str.Right(str.GetLength() - str.ReverseFind('\\') - 1); if (::PathFileExists(spath)) arraymsize.Add(spath); else arraymsize.Add(str); } dlg.m_pPathArray = &arraymsize; dlg.m_pPathArrayBigsize = &saCurrentImagePath; dlg.DoModal(); } else { dlg.m_pPathArray = GetCurArray(); dlg.DoModal(); } m_showpichwd = NULL; } void ChoosePhotoSkin2::OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult) // 双击图片列表! { OnDblclkList1(); *pResult = 0; } CString GetModifyTime2(CString path) { HANDLE hFile; WIN32_FIND_DATA wfd; SYSTEMTIME systime; FILETIME localtime; CString stime; //输出时间 memset(&wfd, 0, sizeof(wfd)); if ((hFile = FindFirstFile(path, &wfd)) == INVALID_HANDLE_VALUE) return ""; //ok,转换时间 FileTimeToLocalFileTime(&wfd.ftLastWriteTime, &localtime); FileTimeToSystemTime(&localtime, &systime); stime.Format("%4d%02d%02d", systime.wYear, systime.wMonth, systime.wDay); return stime; } BOOL ChoosePhotoSkin2::GetData()//选片模式; { m_List2.DeleteAllItems(); m_List3.DeleteAllItems(); m_noarray.RemoveAll(); m_no2array.RemoveAll(); #ifdef CHILD_VERSION CString filter = "id='" + m_strOrderNumber + "';id='" + m_strOrderNumber + "';;id='" + m_strOrderNumber + "'"; if (m_seltxname != "" && m_seltxname != "全部") { filter = "id='" + m_strOrderNumber + "' and growthtxname='" + m_seltxname + "';id='" + m_strOrderNumber + "';;id='" + m_strOrderNumber + "'"; } #else CString filter = "id='" + m_strOrderNumber + "' and kind<>'2';id='" + m_strOrderNumber + "';;id='" + m_strOrderNumber + "'"; #endif g_sendhead.code[0] = 50; // dindansp; g_sendhead.code[1] = 11; // dindan g_sendhead.code[2] = 4; // shangpin g_sendhead.code[3] = 182; // dindansp3 g_sendhead.tabcount = 4; g_sendhead.bsql = 0; g_pMainWnd->ProcessChatMessageRequest2(filter); if (g_bSendOK == 0)return 0; CArraysparray; DataToArray(&sparray, &g_List1array, &m_sparray, &oldsparray); m_patharray2.RemoveAll(); CString str, kind; int nchoosezs = 0; int list2pos = 0; int list3pos = 0; CString savepath; savepath.Format("%s\\%s.dat", g_mainpath, m_strOrderNumber); CString stm1 = GetModifyTime2(savepath); CTime tm1 = CTime::GetCurrentTime(); tm1 -= CTimeSpan(2, 0, 0, 0); CString stm2 = tm1.Format("%Y%m%d"); BOOL bLoadHistory = 0; if (PathFileExists(savepath) && stm1 > stm2) { if (AfxMessageBox("提醒:请谨慎操作\r\n上次选片未正常退出, 是否还原到上次选片状态?", MB_YESNO | MB_ICONINFORMATION) == IDYES) bLoadHistory = 1; } if (bLoadHistory) { CArrayList1array; CFile fp; fp.Open(savepath, CFile::modeRead); DWORD nMessageLen = fp.GetLength(); BYTE *szChatMessage = new BYTE[nMessageLen]; fp.Read(szChatMessage, nMessageLen); fp.Close(); int count; memcpy(&count, szChatMessage + (nMessageLen - sizeof(int)), sizeof(int)); CMemFile memfile; memfile.Attach(szChatMessage, nMessageLen); CArchive ar(&memfile, CArchive::load); List1array.SetSize(count); int i = 0; for ( i = 0; i < List1array.GetSize(); i++) { List1array.ElementAt(i).Serialize(ar); } ar.Close(); memfile.Detach(); delete[]szChatMessage; list2pos = 0; list3pos = 0; for (i = 0; i < List1array.GetSize(); i++) { if (0)//List1array.ElementAt (i).GetSize ()==6) { kind = "0"; m_List2.InsertItem(list2pos, List1array.ElementAt(i).ElementAt(1)); m_List2.SetItemText(list2pos, 1, List1array.ElementAt(i).ElementAt(2)); m_List2.SetItemText(list2pos, 2, List1array.ElementAt(i).ElementAt(3)); m_List2.SetItemText(list2pos, 3, List1array.ElementAt(i).ElementAt(4)); m_List2.SetItemText(list2pos, 4, List1array.ElementAt(i).ElementAt(5)); str = List1array.ElementAt(i).ElementAt(5); list2pos++; } else { kind = "4"; m_List3.InsertItem(list3pos, List1array.ElementAt(i).ElementAt(1)); m_List3.SetItemText(list3pos, 1, List1array.ElementAt(i).ElementAt(2)); m_List3.SetItemText(list3pos, 2, List1array.ElementAt(i).ElementAt(3)); m_List3.SetItemText(list3pos, 3, List1array.ElementAt(i).ElementAt(4)); m_List3.SetItemText(list3pos, 4, List1array.ElementAt(i).ElementAt(5)); m_List3.SetItemText(list3pos, 5, List1array.ElementAt(i).ElementAt(6)); #ifdef LKAY_VERSION m_List3.SetItemText(list3pos, 6, List1array.ElementAt (i).ElementAt (7)); m_List3.SetItemText(list3pos, 7, List1array.ElementAt (i).ElementAt (8)); str=List1array.ElementAt (i).ElementAt (8); #else str = List1array.ElementAt(i).ElementAt(6); #endif list3pos++; } nchoosezs += GetZS(str); GetPath(str); if (!str.IsEmpty()) str = "," + str + ","; str.MakeLower(); if (kind == "4") m_no2array.Add(str); else m_noarray.Add(str); } } else { for (int i = 0; i < sparray.GetSize(); i++) { kind = "4";//sparray.ElementAt (i).ElementAt (4); if (kind == "4") { m_List3.InsertItem(list3pos, sparray.ElementAt(i).ElementAt(7)); m_List3.SetItemText(list3pos, 1, sparray.ElementAt(i).ElementAt(1)); m_List3.SetItemText(list3pos, 2, sparray.ElementAt(i).ElementAt(5)); m_List3.SetItemText(list3pos, 3, sparray.ElementAt(i).ElementAt(2)); m_List3.SetItemText(list3pos, 4, sparray.ElementAt(i).ElementAt(3)); #ifdef LKAY_VERSION m_List3.SetItemText(list3pos, 5, sparray.ElementAt (i).ElementAt (9)); m_List3.SetItemText(list3pos, 6, sparray.ElementAt (i).ElementAt (10)); m_List3.SetItemText(list3pos, 7, sparray.ElementAt (i).ElementAt (6)); #else m_List3.SetItemText(list3pos, 5, sparray.ElementAt(i).ElementAt(6)); #endif list3pos++; } else { m_List2.InsertItem(list2pos, sparray.ElementAt(i).ElementAt(7)); m_List2.SetItemText(list2pos, 1, sparray.ElementAt(i).ElementAt(1)); m_List2.SetItemText(list2pos, 2, sparray.ElementAt(i).ElementAt(5)); m_List2.SetItemText(list2pos, 3, sparray.ElementAt(i).ElementAt(3)); m_List2.SetItemText(list2pos, 4, sparray.ElementAt(i).ElementAt(6)); list2pos++; } str = sparray.ElementAt(i).ElementAt(6); str.MakeLower(); nchoosezs += GetZS(str); GetPath(str); if (!str.IsEmpty()) str = "," + str + ","; if (kind == "4") m_no2array.Add(str); else m_noarray.Add(str); } CheckForAlbum(); CheckForDisk(); } if (g_List1array.GetSize()) { m_name1 = g_List1array.ElementAt(0).ElementAt(4); m_name2 = g_List1array.ElementAt(0).ElementAt(5); m_phone1 = g_List1array.ElementAt(0).ElementAt(61); m_phone2 = g_List1array.ElementAt(0).ElementAt(62); if (!m_name1.IsEmpty()) m_name = m_name1 + ","; m_name += m_name2; m_name.TrimRight(","); m_waiter3 = g_user.name; m_taoxizs = g_List1array.ElementAt(0).ElementAt(9); m_time5 = g_List1array.ElementAt(0).ElementAt(22); m_takezs = g_List1array.ElementAt(0).ElementAt(23); m_choosezs = g_List1array.ElementAt(0).ElementAt(24); m_money3 = g_List1array.ElementAt(0).ElementAt(3); m_oldmoney3 = m_money3; m_bz3 = g_List1array.ElementAt(0).ElementAt(39); m_bz4 = g_List1array.ElementAt(0).ElementAt(75); m_urgent = g_List1array.ElementAt(0).ElementAt(40); m_delphotos = g_List1array.ElementAt(0).ElementAt(53); // Jeff开始选片时,获取dindan表的字段delphotos.读取正常。 m_time6 = g_List1array.ElementAt(0).ElementAt(48); m_time5old = m_time5; m_time6old = m_time6; taoxiname = g_List1array.ElementAt(0).ElementAt(7); m_taoxijiage = g_List1array.ElementAt(0).ElementAt(8); m_waiter1 = g_List1array.ElementAt(0).ElementAt(34); m_waiter2 = g_List1array.ElementAt(0).ElementAt(35); m_clothescount = g_List1array.ElementAt(0).ElementAt(26); ren = g_List1array.ElementAt(0).ElementAt(14); m_size = g_List1array.ElementAt(0).ElementAt(60); m_checkstatus = g_List1array.ElementAt(0).ElementAt(32); UpdateData(false); } else { m_name1 = ""; m_name2 = ""; m_waiter3 = ""; m_taoxizs = ""; m_time5 = ""; m_takezs = ""; m_choosezs = ""; m_money3 = ""; m_bz3 = ""; m_bz4 = ""; m_urgent = ""; UpdateData(false); } return 1; } void ChoosePhotoSkin2::OnOK() { } void ChoosePhotoSkin2::OnCancel() { } void ChoosePhotoSkin2::OnClose() { if (m_bModify) { if (AfxMessageBox("提醒, 选片修改未保存, 是否保存后再退出?", MB_YESNO | MB_ICONINFORMATION) == IDYES) { OnButton4(); } } CDialog::OnCancel(); } BOOL ChoosePhotoSkin2::PreTranslateMessage(MSG* pMsg) { if (pMsg->message == WM_LBUTTONDOWN) { g_bNeedDrawParent = 2; if (0) {//list3 CPoint pt; CRect rc, rc2; ::GetCursorPos(&pt); m_List3.GetWindowRect(rc2); if (rc2.PtInRect(pt) == 0) return CDialog::PreTranslateMessage(pMsg); SetTimer(3, 300, NULL); } } /* else if(pMsg->message==WM_PAINT && pMsg->hwnd ==this->m_hWnd ) { SetTimer(1, 100, NULL); } else if(pMsg->message==WM_TIMER&& pMsg->hwnd ==this->m_hWnd) { KillTimer(1); DrawLogin(); }*/ else if (0)//pMsg->message==WM_LBUTTONDBLCLK) { {//list1 CPoint pt; CRect rc, rc2; ::GetCursorPos(&pt); m_List2.GetWindowRect(rc2); if (rc2.PtInRect(pt)) return 1; } {//list3 CPoint pt; CRect rc, rc2; ::GetCursorPos(&pt); m_List3.GetWindowRect(rc2); if (rc2.PtInRect(pt) == 0)return CDialog::PreTranslateMessage(pMsg); pt.x -= rc2.left; pt.y -= rc2.top; int iItem = m_List3.GetItemCount() - 1; if (iItem < 0) { m_List3.GetHeaderCtrl()->GetItemRect(0, rc); int hei = rc.Height(); rc.top += hei; rc.bottom += hei; if (rc.PtInRect(pt)) { m_List3.InsertItem(m_List3.GetItemCount(), ""); } } else { m_List3.GetSubItemRect(iItem, 0, LVIR_BOUNDS, rc); int hei = rc.Height(); rc.top += hei; rc.bottom += hei; if (rc.PtInRect(pt)) { if (m_List3.GetItemText(iItem, 1).IsEmpty() && m_List3.GetItemText(iItem, 2).IsEmpty()) return CDialog::PreTranslateMessage(pMsg); m_List3.InsertItem(m_List3.GetItemCount(), ""); } POSITION pos; pos = m_List3.GetFirstSelectedItemPosition(); if (pos) { iItem = m_List3.GetNextSelectedItem(pos); m_List3.GetSubItemRect(iItem, 4, LVIR_BOUNDS, rc); if (rc.PtInRect(pt))return 1; } } } } else if (pMsg->message == WM_KEYDOWN) { if (m_showpichwd)return 1; switch (pMsg->wParam) { case VK_DELETE: OnDel(); return 1; case VK_RETURN: OnDblclkList1(); return 1; case VK_F4: if (m_mode2 && m_bChooseBig == 0)return 1; if (atoi(g_cominfoarray.ElementAt(0).ElementAt(62))) { if (m_mode == 1)UpdateChooseZS(); SortArray(); } return 1; case VK_F5: if (atoi(g_cominfoarray.ElementAt(0).ElementAt(86))) { OnBtnClick(0, 99 + 4); } /* if(m_mode2==0)return 1; { ReplaceDesignNo dlg; dlg.m_id=this->m_id ; dlg.DoModal (); }*/ return 1; case VK_F1: { if (m_selphotownd2.GetSafeHwnd() == NULL) { m_selphotownd2.m_id = m_strOrderNumber; m_selphotownd2.m_rc = m_rcarray.ElementAt(6); m_selphotownd2.Create(IDD_DLGShowSelPhoto2, this); } m_selphotownd2.ShowWindow(1); } return 1; case VK_F2: if (m_mode2 && m_bChooseBig == 0)return 1; if (0) { return 1; CStringArray array; for (int i = 0; i < m_List2.GetItemCount(); i++) { if (m_List2.GetItemText(i, 4).IsEmpty() == 0) { array.Add(m_List2.GetItemText(i, 0)); array.Add(m_List2.GetItemText(i, 4)); } } if (array.GetSize() == 0)return 1; ChoosePhotoSkin2 dlg; dlg.SetLiaPath("3.lia"); dlg.m_strOrderNumber = m_strOrderNumber; dlg.m_pArray = &array; dlg.m_path = g_path2 + "\\"; dlg.m_path += dlg.m_strOrderNumber; dlg.m_path += "\\"; dlg.DoModal(); return 1; } if (atoi(g_cominfoarray.ElementAt(0).ElementAt(60))) { m_bHide = !m_bHide; LoadPhotos(); } return 1; case VK_F6: { if (m_mode2) { ReplaceDesignNo dlg; dlg.m_id = this->m_strOrderNumber; dlg.DoModal(); } } return 1; } } return CDialog::PreTranslateMessage(pMsg); } void ChoosePhotoSkin2::OnRclickList1()// 右键选片模式; { // 1.Jeff:看设计模式; if (m_mode2) { OnRclickList2(); return; } // 2.Jeff:开始选片模式; if (m_bRunning)return; POSITION pos; pos = m_List1.GetFirstSelectedItemPosition(); if (pos == NULL) { return; } int iItem = m_List1.GetNextSelectedItem(pos); CString scount; // .获取当前查看的相片; CStringArray *pArray = GetCurArray(); CString path = pArray->ElementAt(iItem); path = path.Right(path.GetLength() - path.ReverseFind('\\') - 1); path = path.Left(path.ReverseFind('.')); if (m_mode2)// Jeff:第1步时就退出了,这里判断有意义????? 这一段代码永远不会执行; { if (!CheckName(path)) { CMenuXP *pPopup; pPopup = new CMenuXP; pPopup->CYBUTTONMARGIN = 3; pPopup->CreatePopupMenu(); pPopup->SetMenuStyle(CMenuXP::STYLE_XP); pPopup->AppendODMenu2(0, new CMenuXPText(32794, "修改要求", NULL)); CPoint pt; ::GetCursorPos(&pt); pPopup->TrackPopupMenu(TPM_RIGHTBUTTON, pt.x, pt.y, this, 0); delete pPopup; return; } } path = "," + path + ","; CMenuXP *pPopup; pPopup = new CMenuXP; pPopup->CYBUTTONMARGIN = 3; pPopup->CreatePopupMenu(); pPopup->SetMenuStyle(CMenuXP::STYLE_XP); int i = 0; int maxleng = 1; { CString name, no; int count = 0; for ( i = 0; i < m_List2.GetItemCount(); i++) { name = m_List2.GetItemText(i, 2); // Jeff,no里为商品名称选中的相片 no = m_noarray.ElementAt(i); maxleng = max(maxleng, name.GetLength()); } count = i; for (; i < count + m_no2array.GetSize(); i++) { name = m_List3.GetItemText(i - count, 2); maxleng = max(maxleng, name.GetLength()); } } maxleng += 3; CString name, no; int count = 0; for ( i = 0; i < m_List2.GetItemCount(); i++) { name = m_List2.GetItemText(i, 2); ::FillLength(name, maxleng); // Jeff,no里为商品名称选中的相片 no = m_noarray.ElementAt(i); GetSelCountFromName(no, scount); pPopup->AppendODMenu2(0, new CMenuXPText(IDM_MENUsp1 + i, name + scount, NULL)); if (no.Find(path) != -1) pPopup->CheckMenuItem(IDM_MENUsp1 + i, MF_BYCOMMAND | MF_CHECKED); } count = i; for (; i < count + m_no2array.GetSize(); i++) { name = m_List3.GetItemText(i - count, 2); ::FillLength(name, maxleng); no = m_no2array.ElementAt(i - count); GetSelCountFromName(no, scount); pPopup->AppendODMenu2(0, new CMenuXPText(IDM_MENUsp1 + i, name + scount, NULL)); if (no.Find(path) != -1) pPopup->CheckMenuItem(IDM_MENUsp1 + i, MF_BYCOMMAND | MF_CHECKED); } pPopup->AppendODMenu2(0, new CMenuXPText(32794, "修改要求", NULL)); CPoint pt; ::GetCursorPos(&pt); pPopup->TrackPopupMenu(TPM_RIGHTBUTTON, pt.x, pt.y, this, 0); delete pPopup; } void ChoosePhotoSkin2::OnRclickList2()// 右键看设计模式; { if (m_bRunning)return; POSITION pos; pos = m_List1.GetFirstSelectedItemPosition(); if (pos == NULL) { return; } int iItem = m_List1.GetNextSelectedItem(pos); CString scount; CStringArray *pArray = GetCurArray(); //获取当前查看的内容; CString path = pArray->ElementAt(iItem); //path//打印出相片完整路径名; if (m_bChooseBig)//选放大 path = path.Right(path.GetLength() - path.ReverseFind('\\') - 1); else//选设计 path = path.Right(path.GetLength() - m_path.GetLength()); path = path.Left(path.ReverseFind('.')); path = "," + path + ","; // // TODO: Add your control notification handler code here // 1.创建菜单对象; CMenuXP *pPopup; pPopup = new CMenuXP; pPopup->CYBUTTONMARGIN = 3; // 1.0.按钮范围0~3; 4个菜单; pPopup->CreatePopupMenu(); // 1.1.弹出式菜单; pPopup->SetMenuStyle(CMenuXP::STYLE_XP);// 1.2.弹出菜单样式; // Jeff:m_List2有三列头:编号、商品名称、商品数量; int i = 0; int maxleng = 1; { CString name, no; int count = 0; for ( i = 0; i < m_List2.GetItemCount(); i++) { // name商品名称 name = m_List2.GetItemText(i, 2); no = m_noarray.ElementAt(i); maxleng = max(maxleng, name.GetLength()); } count = i; for (; i < count + m_no2array.GetSize(); i++) { name = m_List3.GetItemText(i - count, 2); maxleng = max(maxleng, name.GetLength()); } } maxleng += 3; // Jeff:m_List2有三列头:编号、商品名称、商品数量; CString name, no; int count = 0; for ( i = 0; i < m_List2.GetItemCount(); i++) { name = m_List2.GetItemText(i, 2); ::FillLength(name, maxleng);// Jeff:有这样的API函数么???怎么查也查不到 no = m_noarray.ElementAt(i); GetSelCountFromName(no, scount); pPopup->AppendODMenu2(0, new CMenuXPText(IDM_MENUsp1 + i, name + scount, NULL));// 2.使用AppendODMenu2添加子菜单项; if (no.Find(path) != -1) pPopup->CheckMenuItem(IDM_MENUsp1 + i, MF_BYCOMMAND | MF_CHECKED); } count = i; for (; i < count + m_no2array.GetSize(); i++) { name = m_List3.GetItemText(i - count, 2); ::FillLength(name, maxleng); no = m_no2array.ElementAt(i - count); GetSelCountFromName(no, scount); pPopup->AppendODMenu2(0, new CMenuXPText(IDM_MENUsp1 + i, name + scount, NULL)); if (no.Find(path) != -1) pPopup->CheckMenuItem(IDM_MENUsp1 + i, MF_BYCOMMAND | MF_CHECKED); } pPopup->AppendODMenu2(0, new CMenuXPText(32794, "修改要求", NULL)); CPoint pt; ::GetCursorPos(&pt); pPopup->TrackPopupMenu(TPM_RIGHTBUTTON, pt.x, pt.y, this, 0);// 3.使用TrackPopupMenu,正常弹出菜单; delete pPopup; } void ChoosePhotoSkin2::OnRclickList1(NMHDR* pNMHDR, LRESULT* pResult) { if (m_showpichwd)return; OnRclickList1(); *pResult = 0; } void SortArray2(CArray&datearray) { int strtemp; int last = datearray.GetSize() - 1; bool sorted = true; do { sorted = true; for (int i = 0; i < last; i++) { if (datearray[i] < datearray[i + 1]) { strtemp = datearray[i]; datearray[i] = datearray[i + 1]; datearray[i + 1] = strtemp; sorted = false; } } last--; } while (!sorted); } void ChoosePhotoSkin2::OnCommandMenu(UINT nID)//弹出菜单处理; { if (m_mode2)//看设计; { OnCommandMenu2(nID); return; } if (32794 == nID) { if (m_mode2)//Jeff不会执行的代码; { OnButton4(); } else { POSITION pos; pos = m_List1.GetFirstSelectedItemPosition(); if (pos == NULL) { return; } int iItem = m_List1.GetNextSelectedItem(pos); CStringArray *pArray = GetCurArray(); CString path = pArray->ElementAt(iItem); path = path.Right(path.GetLength() - path.ReverseFind('\\') - 1); path = path.Left(path.Find('.')); if (m_bz4.GetLength() > 4080) { AfxMessageBox("备注太长,可在保存界面选中备注内容,按Delete键清除"); return; } UpdateData(); CClientRequirement dlg; dlg.m_no = "当前照片:" + path; // dlg.m_bz2=m_bz3; CString header, left, right, cur; header = path + ":"; int pos2 = m_bz4.Find(header); if (pos2 != -1) { left = m_bz4.Left(pos2); m_bz4 = m_bz4.Right(m_bz4.GetLength() - pos2); pos2 = m_bz4.Find(" "); if (pos2 != -1) { cur = m_bz4.Left(pos2); int pos3 = cur.Find(":"); if (pos3 != -1) cur = cur.Right(cur.GetLength() - pos3 - 1); right = m_bz4.Right(m_bz4.GetLength() - pos2 - 2); } } else left = m_bz4; dlg.m_bz2 = cur; dlg.m_bSave = 0; dlg.m_nMode = 2; if (dlg.DoModal() == IDOK) { // m_bz3=dlg.m_bz2 ; dlg.m_bz2.TrimLeft(); dlg.m_bz2.TrimRight(); if (dlg.m_bz2 != "") cur = header + dlg.m_bz2 + " "; else cur = ""; m_bz4 = left + cur + right; UpdateData(false); } else { if (cur != "") m_bz4 = left + header + cur + " " + right; else m_bz4 = left + right; } } return; } POSITION pos; pos = m_List1.GetFirstSelectedItemPosition(); if (pos == NULL) { return; } CString temp; m_combo1.ResetContent(); int aa = 0; while (pos) { // if(aa && m_mode==1)break;//m_mode=1查看选中 // if(aa && m_mode==2)break; aa++; int iItem = m_List1.GetNextSelectedItem(pos); CStringArray *pArray = GetCurArray(); CString path = pArray->ElementAt(iItem); path = path.Right(path.GetLength() - path.ReverseFind('\\') - 1); path = path.Left(path.ReverseFind('.')); path = "," + path + ","; int idpos = nID - IDM_MENUsp1; BOOL bSel = 0;//选中还是取消 if (idpos < m_noarray.GetSize()) { CString no = m_noarray.ElementAt(idpos); if (no.Find(path) != -1) { int pos = no.Find(path); no.Delete(pos, path.GetLength() - 1); } else if (no.GetLength() > 4000) { AfxMessageBox("编号太长,选择失败!", MB_ICONSTOP); return; } else { bSel = 1; no.TrimRight(","); no += path; } no.TrimLeft(","); no.TrimRight(","); m_List2.SetItemText(idpos, 4, no); if (no.IsEmpty()) m_noarray.SetAt(idpos, no); else m_noarray.SetAt(idpos, "," + no + ","); } else { idpos -= m_noarray.GetSize(); CString no = m_no2array.ElementAt(idpos); if (no.Find(path) != -1) { int pos = no.Find(path); no.Delete(pos, path.GetLength() - 1); } else if (no.GetLength() > 4000) { AfxMessageBox("编号太长,选择失败!", MB_ICONSTOP); return; } else { bSel = 1; no.TrimRight(","); no += path; } no.TrimLeft(","); no.TrimRight(","); #ifdef LKAY_VERSION m_List3.SetItemText (idpos, 7, no); #else m_List3.SetItemText(idpos, 5, no); #endif if (no.IsEmpty()) m_no2array.SetAt(idpos, no); else m_no2array.SetAt(idpos, "," + no + ","); } m_bModify = 1; if (bSel == 0 && m_mode == 1 && IsSelPhoto(path) == 0) { temp.Format("%d", iItem); m_combo1.AddString(temp); continue; } else if (bSel == 1 && m_mode == 2) { temp.Format("%d", iItem); m_combo1.AddString(temp); continue; } else if (bSel == 1 && m_mode == 3) { temp.Format("%d", iItem); m_combo1.AddString(temp); continue; } else if (bSel == 0 && m_mode == 4 && IsSelAlbumPhoto(path) == 0) { temp.Format("%d", iItem); m_combo1.AddString(temp); continue; } else if (bSel == 0 && m_mode == 5 && IsSelDiskPhoto(path) == 0) { temp.Format("%d", iItem); m_combo1.AddString(temp); continue; } ///////////////////////// CString no, dir; no = pArray->ElementAt(iItem); if (m_mode2) { if (no.Left(no.ReverseFind('\\') + 1) != m_path) { dir = no.Left(no.ReverseFind('\\') + 1); dir = dir.Right(dir.GetLength() - m_path.GetLength()); } } no = no.Right(no.GetLength() - no.ReverseFind('\\') - 1); no = no.Left(no.ReverseFind('.')); no += GetSelName(no); m_List1.SetItemText(iItem, 0, dir + no); } CArrayposarray; for (int i = m_combo1.GetCount() - 1; i >= 0; i--) { m_combo1.GetLBText(i, temp); posarray.Add(atoi(temp)); } SortArray2(posarray); if (posarray.GetSize()) { if (m_mode == 1) { for (int i = 0; i < posarray.GetSize(); i++) { m_List1.DeleteItem(posarray.ElementAt(i)); m_patharray3.Add(m_patharray2.ElementAt(posarray.ElementAt(i))); m_patharray2.RemoveAt(posarray.ElementAt(i)); } if (m_showpichwd) ::SendMessage(m_showpichwd, WM_CLOSE, 0, 0); } else if (m_mode == 2) { for (int i = 0; i < posarray.GetSize(); i++) { m_List1.DeleteItem(posarray.ElementAt(i)); m_patharray3.RemoveAt(posarray.ElementAt(i)); } if (m_showpichwd) ::SendMessage(m_showpichwd, WM_CLOSE, 0, 0); } else if (m_mode == 3) { for (int i = 0; i < posarray.GetSize(); i++) { m_List1.DeleteItem(posarray.ElementAt(i)); m_patharray1.Add(m_patharray4.ElementAt(posarray.ElementAt(i))); m_patharray4.RemoveAt(posarray.ElementAt(i)); } if (m_showpichwd) ::SendMessage(m_showpichwd, WM_CLOSE, 0, 0); } else if (m_mode == 4) { for (int i = 0; i < posarray.GetSize(); i++) { m_List1.DeleteItem(posarray.ElementAt(i)); m_patharray5.RemoveAt(posarray.ElementAt(i)); } if (m_showpichwd) ::SendMessage(m_showpichwd, WM_CLOSE, 0, 0); } else if (m_mode == 5) { for (int i = 0; i < posarray.GetSize(); i++) { m_List1.DeleteItem(posarray.ElementAt(i)); m_patharray6.RemoveAt(posarray.ElementAt(i)); } if (m_showpichwd) ::SendMessage(m_showpichwd, WM_CLOSE, 0, 0); } } if (m_mode2 == 0) { Save(); DrawLogin(); if (m_showpichwd) ::SendMessage(m_showpichwd, WM_USER + 200, 0, 0); } } void ChoosePhotoSkin2::OnCommandMenu2(UINT nID)//看设计,弹出菜单处理; { if (32794 == nID)// 处理菜单荐:修改要求; { POSITION pos; pos = m_List1.GetFirstSelectedItemPosition(); if (pos == NULL) { return; } int iItem = m_List1.GetNextSelectedItem(pos); CStringArray *pArray = GetCurArray(); CString path = pArray->ElementAt(iItem); path = path.Right(path.GetLength() - path.ReverseFind('\\') - 1); path = path.Left(path.Find('.')); UpdateData(); CClientRequirement dlg; dlg.m_no = "当前照片:" + path; dlg.m_bz2 = m_bz3; dlg.m_bSave = 0; dlg.m_nMode = 2; if (dlg.DoModal() == IDOK) { m_bz3 = dlg.m_bz2; UpdateData(false); } return; } POSITION pos; pos = m_List1.GetFirstSelectedItemPosition(); if (pos == NULL) { return; } CString temp; m_combo1.ResetContent(); int aa = 0; while (pos) // 开始获取相片; { // if(aa && m_mode==1)break; // if(aa && m_mode==2)break; aa++; int iItem = m_List1.GetNextSelectedItem(pos); CStringArray *pArray = GetCurArray(); // path: CString path = pArray->ElementAt(iItem); //AfxMessageBox(path);//Jeff box if (m_bChooseBig)//选放大 path = path.Right(path.GetLength() - path.ReverseFind('\\') - 1); else//选设计 path = path.Right(path.GetLength() - m_path.GetLength()); path = path.Left(path.ReverseFind('.')); path = "," + path + ","; int idpos = nID - IDM_MENUsp1; BOOL bSel = 0;//选中还是取消 if (idpos < m_noarray.GetSize()) { //MessageBox("1"); CString no = m_noarray.ElementAt(idpos); // no:为dindansp字段no; //AfxMessageBox(no);//Jeff box if (no.Find(path) != -1) { int pos = no.Find(path); no.Delete(pos, path.GetLength() - 1); } else if (no.GetLength() > 4000) { AfxMessageBox("编号太长,选择失败!", MB_ICONSTOP); return; } else { bSel = 1; no.TrimRight(","); no += path; } no.TrimLeft(","); no.TrimRight(","); m_List2.SetItemText(idpos, 4, no); if (no.IsEmpty()) m_noarray.SetAt(idpos, no); else m_noarray.SetAt(idpos, "," + no + ","); } else { idpos -= m_noarray.GetSize(); CString no = m_no2array.ElementAt(idpos); if (no.Find(path) != -1) { int pos = no.Find(path); no.Delete(pos, path.GetLength() - 1); } else if (no.GetLength() > 4000) { AfxMessageBox("编号太长,选择失败!", MB_ICONSTOP); return; } else { bSel = 1; no.TrimRight(","); no += path; } no.TrimLeft(","); no.TrimRight(","); #ifdef LKAY_VERSION m_List3.SetItemText (idpos, 7, no); #else m_List3.SetItemText(idpos, 5, no); #endif if (no.IsEmpty()) m_no2array.SetAt(idpos, no); else m_no2array.SetAt(idpos, "," + no + ","); } m_bModify = 1; if (bSel == 0 && m_mode == 1 && IsSelPhoto(path) == 0) { temp.Format("%d", iItem); m_combo1.AddString(temp); continue; } else if (bSel == 1 && m_mode == 2) { temp.Format("%d", iItem); m_combo1.AddString(temp); continue; } else if (bSel == 1 && m_mode == 3) { temp.Format("%d", iItem); m_combo1.AddString(temp); continue; } ///////////////////////// CString no, dir; no = pArray->ElementAt(iItem); if (m_bChooseBig)//选放大 no = no.Right(no.GetLength() - no.ReverseFind('\\') - 1); else//选设计 no = no.Right(no.GetLength() - m_path.GetLength()); no = no.Left(no.ReverseFind('.')); no += GetSelName(no); m_List1.SetItemText(iItem, 0, no); } CArrayposarray; for (int i = m_combo1.GetCount() - 1; i >= 0; i--) { m_combo1.GetLBText(i, temp); posarray.Add(atoi(temp)); } SortArray2(posarray); if (posarray.GetSize()) { if (m_mode == 1) { for (int i = 0; i < posarray.GetSize(); i++) { m_List1.DeleteItem(posarray.ElementAt(i)); m_patharray3.Add(m_patharray2.ElementAt(posarray.ElementAt(i))); m_patharray2.RemoveAt(posarray.ElementAt(i)); } if (m_showpichwd) ::SendMessage(m_showpichwd, WM_CLOSE, 0, 0); } else if (m_mode == 2) { for (int i = 0; i < posarray.GetSize(); i++) { m_List1.DeleteItem(posarray.ElementAt(i)); m_patharray3.RemoveAt(posarray.ElementAt(i)); } if (m_showpichwd) ::SendMessage(m_showpichwd, WM_CLOSE, 0, 0); } else if (m_mode == 3) { for (int i = 0; i < posarray.GetSize(); i++) { m_List1.DeleteItem(posarray.ElementAt(i)); m_patharray1.Add(m_patharray4.ElementAt(posarray.ElementAt(i))); m_patharray4.RemoveAt(posarray.ElementAt(i)); } if (m_showpichwd) ::SendMessage(m_showpichwd, WM_CLOSE, 0, 0); } } Save(); DrawLogin(); if (m_showpichwd) ::SendMessage(m_showpichwd, WM_USER + 200, 0, 0); } int ChoosePhotoSkin2::GetZS(CString str) { str.TrimLeft(","); str.TrimRight(","); if (str.IsEmpty())return 0; int pos = str.Find(','); int count = 1; while (pos != -1) { str.Delete(pos); pos = str.Find(','); count++; } return count; } long ChoosePhotoSkin2::UpdateTakeZS(WPARAM inWParam, LPARAM inLParam) { if (m_mode == 0 && m_List1.GetItemCount() > atoi(m_takezs)) { UpdateData(); m_takezs.Format("%d", m_List1.GetItemCount()); UpdateData(false); } DrawLogin(); return 1; } void ChoosePhotoSkin2::UpdateChooseZS() { m_patharray2.RemoveAll(); CString str; if (m_sChooseFilter != "" && m_sChooseFilter != "全部") { for (int i = 0; i < m_List3.GetItemCount(); i++) { if (m_List3.GetItemText(i, 2) != m_sChooseFilter)continue; str = m_no2array.ElementAt(i); GetPath(str); } return; } int i = 0; for ( i = 0; i < m_noarray.GetSize(); i++) { str = m_noarray.ElementAt(i); GetPath(str); } for (i = 0; i < m_no2array.GetSize(); i++) { str = m_no2array.ElementAt(i); GetPath(str); } } // 保存按钮; void ChoosePhotoSkin2::OnButton4() // 保存按钮; { if (m_mode2 == 0) //选片时的保存; { UpdateData(); if (m_mode != 1) { CalChooseZS(); } CString zs = m_taoxizs; int pos = zs.Find("\\"); if (pos != -1) { zs = zs.Left(pos); } m_choosezs.Format("%d", max(0, m_patharray2.GetSize() - atoi(zs))); m_bSaveFail = 0; ChoosePhotoSkin3 dlg; dlg.m_strStatusOfChoosePhoto = m_strStatusOfChoosePhoto; // Jeff 传选片状态; dlg.m_pParent = this; dlg.DoModal(); if (dlg.m_bSave) m_bModify = 0; if (dlg.m_bPushedSave == 0 && dlg.m_bSaveFail == 0) { CString savepath; savepath.Format("%s\\%s.dat", g_mainpath, m_strOrderNumber); if (m_mode2)savepath.Format("%s\\%s-2.dat", g_mainpath, m_strOrderNumber); ::DeleteFile(savepath); } m_bSaveFail = dlg.m_bSaveFail; if (dlg.m_bExit) { m_bModify = 0; CDialog::OnCancel(); } } else if (m_mode2 == 1) // 看设计时的保存,delphotos2的保存需要重新定向; { UpdateData(); if (m_mode != 1) { CalChooseZS(); } CString zs = m_taoxizs; int pos = zs.Find("\\"); if (pos != -1) { zs = zs.Left(pos); } m_choosezs.Format("%d", max(0, m_patharray2.GetSize() - atoi(zs))); m_bSaveFail = 0; ChoosePhotoSkin3 dlg; //dlg.m_strStatusOfChoosePhoto = m_strStatusOfChoosePhoto;// Jeff.看设计状态另处理; dlg.m_pParent = this; dlg.DoModal(); if (dlg.m_bSave) m_bModify = 0; if (dlg.m_bPushedSave == 0 && dlg.m_bSaveFail == 0) { CString savepath; savepath.Format("%s\\%s.dat", g_mainpath, m_strOrderNumber); if (m_mode2)savepath.Format("%s\\%s-2.dat", g_mainpath, m_strOrderNumber); ::DeleteFile(savepath); } m_bSaveFail = dlg.m_bSaveFail; if (dlg.m_bExit) { m_bModify = 0; CDialog::OnCancel(); } } } // 删除相片; BOOL ChoosePhotoSkin2::OnDel() // 删除相片; { // printf("Jeff:m_mode=%d,m_mode2=%d.\n\n",m_mode,m_mode2);//Jeff Printf if (m_mode == 1) { AfxMessageBox("选中照片不能删除, 请先取消选中状态!", MB_ICONINFORMATION); return 0; } else if (m_mode == 3) { return 0; } POSITION pos; pos = m_List1.GetFirstSelectedItemPosition(); if (pos == NULL) { return 0; } if (m_bRunning) return 0; int iItem = m_List1.GetNextSelectedItem(pos); CString no;//=m_List1.GetItemText (iItem, 0); CStringArray *pArray = GetCurArray(); // Jeff:按钮选择返回(查看全部、查看选中、查看未选……) no = pArray->ElementAt(iItem); //printf("Jeff:pos=%d,iItem=%d,no=%s \n\n",pos,iItem,no);// Jeff Printf; no = no.Right(no.GetLength() - no.ReverseFind('\\') - 1); no = no.Left(no.Find('.')); if (IsSelPhoto(no)) // Jeff 这里有问题,有些订单删除未选中的相片时,会提示box内容。状态:未处理; { AfxMessageBox("选中的照片不能删除, 请先取消选中状态!", MB_ICONINFORMATION); return 0; } if (AfxMessageBox("是否删除此照片?", MB_YESNO | MB_ICONINFORMATION) != IDYES) return 0; m_List1.DeleteItem(iItem); CString name = pArray->ElementAt(iItem); #if JEFF_TEST_ON if (PathFileExists(name)) m_patharray4.Add(name); #else m_patharray4.Add(name); #endif // printf("Jeff:将要删除的相片=%s\n\n",name);// Jeff Printf; for (int i = 0; i < pArray->GetSize(); i++) { if (name.CollateNoCase(pArray->ElementAt(i)) == 0) { pArray->RemoveAt(i); if (m_mode == 2) { DelNo(no); // MessageBox(no); // m_patharray1.RemoveAt (i); } break; } } if (iItem >= pArray->GetSize()) iItem = 0; m_List1.SetItemState(iItem, LVIS_SELECTED, LVIS_SELECTED); DrawLogin(); return 1; } extern int GetOrientation(Image *image); void ChoosePhotoSkin2::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) { *pResult = 0; } void ChoosePhotoSkin2::OnTimer(UINT nIDEvent) { if (nIDEvent == 1) { KillTimer(nIDEvent); if (m_showpichwd) ::SendMessage(m_showpichwd, WM_USER + 200, 1, 0); TimeOutDlg dlg; dlg.m_ticks = m_ticks; dlg.DoModal(); SetTimer(2, m_timer * 60000, NULL); } else if (nIDEvent == 2) // 定时器触发超时密码对话框; { KillTimer(nIDEvent); if (m_showpichwd) ::SendMessage(m_showpichwd, WM_USER + 200, 1, 0); TimeOutDlg dlg; dlg.m_ticks = m_ticks; dlg.DoModal(); SetTimer(2, m_timer * 60000, NULL); } else if (nIDEvent == 3) { KillTimer(nIDEvent); //SetSPName3(); } } float ChoosePhotoSkin2::GetSPPriceFromId(CString id) { for (int i = 0; i < m_sparray.GetSize(); i++) { if (id == m_sparray.ElementAt(i).ElementAt(0)) return atof(m_sparray.ElementAt(i).ElementAt(4)); } return 0; } CString ChoosePhotoSkin2::GetSPNameFromId(CString id) { int i = 0; for ( i = 0; i < m_sparray.GetSize(); i++) { if (id == m_sparray.ElementAt(i).ElementAt(0)) return m_sparray.ElementAt(i).ElementAt(1); } id.TrimLeft("0"); for (i = 0; i < m_sparray.GetSize(); i++) { if (id == m_sparray.ElementAt(i).ElementAt(0)) return m_sparray.ElementAt(i).ElementAt(1); } return ""; } CString GetPathFromNo(CString dir, CString no, CStringArray *pArray) { CString sRet; dir.TrimRight('\\'); dir += "\\"; CStringArray dirarray; CString temp; if (pArray->GetSize() == 0) { using namespace helper_coffs; ffsco o; o.dirs(1); o.find(LPCSTR(dir), LPCSTR("*.*")); ffsco::typeT coo; ffsco::typeT::iterator it; coo = o.co_dir(); for (it = coo.begin(); coo.end() != it; it++) { temp = (*it).c_str(); if (::FindArray(&dirarray, temp) == -1 && temp != dir) { dirarray.Add(temp); } } } else dirarray.Copy(*pArray); for (int i = 0; i < dirarray.GetSize(); i++) { temp = dirarray.ElementAt(i); sRet.Format("%s%s.jpg", temp, no); if (::PathFileExists(sRet))return sRet; } return dir + no + ".jpg"; } CString GetPathFromNo2(CString dir, CString no, CStringArray *pArray) { CString path; for (int i = 0; i < pArray->GetSize(); i++) { path = pArray->ElementAt(i); path = path.Right(path.GetLength() - path.ReverseFind('\\') - 1); if (path.Find(".") != -1) path = path.Left(path.Find(".")); if (no == path)return pArray->ElementAt(i); } return ""; } void ChoosePhotoSkin2::GetPath(CString str) {// if(atoi(g_cominfoarray.ElementAt(0).ElementAt(109))==0 && m_mode2==0) if (m_bFromLocal && m_mode2 == 0) { str.TrimLeft(","); str.TrimRight(","); if (str.IsEmpty())return; int pos = str.Find(','); CString path, path2; char spath[MAX_PATH]; ::GetSystemDirectory(spath, MAX_PATH); CString sysdir = spath; sysdir += "\\lyfz"; sysdir += "\\"; sysdir += m_strOrderNumber; sysdir += "\\"; while (pos != -1) { path = sysdir + str.Left(pos) + ".jpg"; if (FindArray(&m_patharray2, path) == -1) { #if JEFF_TEST_ON if (PathFileExists(path)) m_patharray2.Add(path); #else m_patharray2.Add(path); #endif } str = str.Right(str.GetLength() - pos - 1); pos = str.Find(','); } path = sysdir + str + ".jpg"; if (FindArray(&m_patharray2, path) == -1) { #if JEFF_TEST_ON if (PathFileExists(path)) m_patharray2.Add(path); #else m_patharray2.Add(path);//MessageBox(path); #endif } } else if (m_mode2 && m_bChooseBig == 0)//看设计 { str.TrimLeft(","); str.TrimRight(","); if (str.IsEmpty())return; int pos = str.Find(','); CString path, path2; while (pos != -1) { path = m_path + str.Left(pos) + ".jpg"; if (FindArray(&m_patharray2, path) == -1) { #if JEFF_TEST_ON if (PathFileExists(path)) m_patharray2.Add(path); #else m_patharray2.Add(path); #endif } str = str.Right(str.GetLength() - pos - 1); pos = str.Find(','); } path = m_path + str + ".jpg"; if (FindArray(&m_patharray2, path) == -1) { #if JEFF_TEST_ON if (PathFileExists(path)) m_patharray2.Add(path); #else m_patharray2.Add(path); #endif } } else { if (m_DirArrayBuf.GetSize() == 0) { CString dir = m_path; dir.TrimRight('\\'); dir += "\\"; CString temp; using namespace helper_coffs; ffsco o; o.dirs(1); o.find(LPCSTR(dir), LPCSTR("*.*")); ffsco::typeT coo; ffsco::typeT::iterator it; coo = o.co_dir(); for (it = coo.begin(); coo.end() != it; it++) { temp = (*it).c_str(); if (::FindArray(&m_DirArrayBuf, temp) == -1 && temp != dir) { m_DirArrayBuf.Add(temp); } } } str.TrimLeft(","); str.TrimRight(","); if (str.IsEmpty())return; int pos = str.Find(','); CString path, path2; while (pos != -1) { path = GetPathFromNo2(m_path, str.Left(pos), &m_patharray1); path2 = path; if (m_nChoosePhotoType == 0) { path2.Replace("客户原片", "修好的片"); int pos1 = path2.Find(m_strOrderNumber); pos1 += m_strOrderNumber.GetLength(); int pos2 = path2.ReverseFind('\\'); path2 = path2.Left(pos1) + path2.Right(path2.GetLength() - pos2); if (::PathFileExists(path2)) path = path2; } if (FindArray(&m_patharray2, path) == -1) { #if JEFF_TEST_ON if (PathFileExists(path)) m_patharray2.Add(path); #else m_patharray2.Add(path); #endif } str = str.Right(str.GetLength() - pos - 1); pos = str.Find(','); } path = GetPathFromNo2(m_path, str, &m_patharray1);//+".jpg"; path2 = path; if (m_nChoosePhotoType == 0) { path2.Replace("客户原片", "修好的片"); int pos1 = path2.Find(m_strOrderNumber); pos1 += m_strOrderNumber.GetLength(); int pos2 = path2.ReverseFind('\\'); path2 = path2.Left(pos1) + path2.Right(path2.GetLength() - pos2); if (PathFileExists(path2)) path = path2; } if (FindArray(&m_patharray2, path) == -1) { #if JEFF_TEST_ON if (PathFileExists(path)) m_patharray2.Add(path); #else m_patharray2.Add(path); #endif } } } void ChoosePhotoSkin2::LoadPhotos()//加载图片; { if (m_mode == 1) { ProductChooseFilter dlg; CString name; int i = 0; for ( i = 0; i < m_List2.GetItemCount(); i++) { name = m_List2.GetItemText(i, 2); dlg.m_array.Add(name); } for (i = 0; i < m_List3.GetItemCount(); i++) { name = m_List3.GetItemText(i, 2); dlg.m_array.Add(name); } dlg.DoModal(); m_sChooseFilter = dlg.m_sChooseFilter; UpdateChooseZS(); } TerminateThread(); CStringArray *pArray = GetCurArray(); m_vFileName.clear(); for (int i = 0; i < pArray->GetSize(); i++) { CString filePath = pArray->ElementAt(i); filePath.MakeLower(); m_vFileName.push_back(filePath); } LoadThumbImages(); } void ChoosePhotoSkin2::GetNoSelPhoto() { m_patharray3.RemoveAll(); CString str1, str2; for (int i = 0; i < m_patharray1.GetSize(); i++) { BOOL bFind = 0; for (int j = 0; j < m_patharray2.GetSize(); j++) { str1 = m_patharray1.ElementAt(i); str2 = m_patharray2.ElementAt(j); if (str1.CollateNoCase(str2) == 0) { bFind = 1; break; } } if (bFind == 0)m_patharray3.Add(m_patharray1.ElementAt(i)); } } int ChoosePhotoSkin2::GetNoSelPhotoCount() { int nRet = 0; CString str1, str2; for (int i = 0; i < m_patharray1.GetSize(); i++) { BOOL bFind = 0; for (int j = 0; j < m_patharray2.GetSize(); j++) { str1 = m_patharray1.ElementAt(i); str2 = m_patharray2.ElementAt(j); if (str1.CollateNoCase(str2) == 0) { bFind = 1; break; } } if (bFind == 0)nRet++; } return nRet; } CStringArray* ChoosePhotoSkin2::GetCurArray() { CStringArray *pArray; switch (m_mode) { case 0: pArray = &m_patharray1;//全部 break; case 1: pArray = &m_patharray2;//选中 break; case 2: pArray = &m_patharray3;//未选 break; case 3: pArray = &m_patharray4;//删除 break; case 4: pArray = &m_patharray5;//入册 break; case 5: pArray = &m_patharray6;//入底 break; } return pArray; } BOOL ChoosePhotoSkin2::IsSelPhoto(CString path) { //path.MakeLower (); int i = 0; for ( i = 0; i < m_no2array.GetSize(); i++) { //m_no2array.ElementAt (i).MakeLower (); if (m_no2array.ElementAt(i).Find(path) != -1) return 1; } for (i = 0; i < m_noarray.GetSize(); i++) { //m_noarray.ElementAt (i).MakeLower (); if (m_noarray.ElementAt(i).Find(path) != -1) return 1; } return 0; } BOOL ChoosePhotoSkin2::IsSelAlbumPhoto(CString path) { CString photosno; for (int i = 0; i < m_List3.GetItemCount(); i++) { if (m_List3.GetItemText(i, 2) != "入册")continue; photosno = m_no2array.ElementAt(i); break; } photosno = "," + photosno + ","; if (photosno.Find(path) != -1) { return 1; } return 0; } BOOL ChoosePhotoSkin2::IsSelDiskPhoto(CString path) { CString photosno; for (int i = 0; i < m_List3.GetItemCount(); i++) { if (m_List3.GetItemText(i, 2) != "入底")continue; photosno = m_no2array.ElementAt(i); break; } photosno = "," + photosno + ","; if (photosno.Find(path) != -1) { return 1; } return 0; } CString ChoosePhotoSkin2::GetSelName(CString name)//获取选中相片; { CString ret; name = "," + name + ","; int i = 0; for ( i = 0; i < m_List2.GetItemCount(); i++) { if (m_noarray.ElementAt(i).Find(name) != -1) { ret += m_List2.GetItemText(i, 2); ret += "\r\n"; } } for (i = 0; i < m_List3.GetItemCount(); i++) { if (m_no2array.ElementAt(i).Find(name) != -1) { ret += m_List3.GetItemText(i, 2); ret += "\r\n"; } } if (!ret.IsEmpty()) { ret = "\r\n" + ret; ret.TrimRight("\r\n"); } return ret; } // Jeff获取选设计的数据; BOOL ChoosePhotoSkin2::GetData2()//选设计模式; { m_List2.DeleteAllItems(); m_List3.DeleteAllItems(); m_noarray.RemoveAll(); m_no2array.RemoveAll(); #ifdef CHILD_VERSION CString filter = "id='" + m_strOrderNumber + "';id='" + m_strOrderNumber + "';;;id='" + m_strOrderNumber + "'"; #else CString filter = "id='" + m_strOrderNumber + "' and kind<>'2';id='" + m_strOrderNumber + "';;;id='" + m_strOrderNumber + "'"; #endif g_sendhead.code[0] = 50; // dindansp; g_sendhead.code[1] = 11; // dindan. g_sendhead.code[2] = 4; // shangpin g_sendhead.code[3] = 8; // shangpin g_sendhead.code[4] = 182; // dindansp3 g_sendhead.tabcount = 5; g_sendhead.bsql = 0; g_pMainWnd->ProcessChatMessageRequest2(filter); if (g_bSendOK == 0)return 0; CArraysparray; DataToArray(&sparray, &g_List1array, &m_sparray, &m_List2array, &oldsparray); m_patharray2.RemoveAll(); CString str, kind; int nchoosezs = 0; int list2pos = 0; int list3pos = 0; CString savepath; savepath.Format("%s\\%s-2.dat", g_mainpath, m_strOrderNumber); CString stm1 = GetModifyTime2(savepath); CTime tm1 = CTime::GetCurrentTime(); tm1 -= CTimeSpan(60, 0, 0, 0); CString stm2 = tm1.Format("%Y%m%d"); BOOL bLoadHistory = 0; if (PathFileExists(savepath) && stm1 > stm2) { if (AfxMessageBox("提醒:请谨慎操作\r\n上次选片未正常退出, 是否还原到上次选片状态?", MB_YESNO | MB_ICONINFORMATION) == IDYES) bLoadHistory = 1; } if (bLoadHistory) { CArrayList1array; CFile fp; fp.Open(savepath, CFile::modeRead); DWORD nMessageLen = fp.GetLength(); BYTE *szChatMessage = new BYTE[nMessageLen]; fp.Read(szChatMessage, nMessageLen); fp.Close(); int count; memcpy(&count, szChatMessage + (nMessageLen - sizeof(int)), sizeof(int)); CMemFile memfile; memfile.Attach(szChatMessage, nMessageLen); CArchive ar(&memfile, CArchive::load); List1array.SetSize(count); int i = 0; for ( i = 0; i < List1array.GetSize(); i++) { List1array.ElementAt(i).Serialize(ar); } ar.Close(); memfile.Detach(); delete[]szChatMessage; list2pos = 0; list3pos = 0; for (i = 0; i < List1array.GetSize(); i++) { if (0)//List1array.ElementAt (i).GetSize ()==6) { kind = "0"; m_List2.InsertItem(list2pos, List1array.ElementAt(i).ElementAt(1)); m_List2.SetItemText(list2pos, 1, List1array.ElementAt(i).ElementAt(2)); m_List2.SetItemText(list2pos, 2, List1array.ElementAt(i).ElementAt(3)); m_List2.SetItemText(list2pos, 3, List1array.ElementAt(i).ElementAt(4)); m_List2.SetItemText(list2pos, 4, List1array.ElementAt(i).ElementAt(5)); str = List1array.ElementAt(i).ElementAt(5); list2pos++; } else { kind = "4"; m_List3.InsertItem(list3pos, List1array.ElementAt(i).ElementAt(1)); m_List3.SetItemText(list3pos, 1, List1array.ElementAt(i).ElementAt(2)); m_List3.SetItemText(list3pos, 2, List1array.ElementAt(i).ElementAt(3)); m_List3.SetItemText(list3pos, 3, List1array.ElementAt(i).ElementAt(4)); m_List3.SetItemText(list3pos, 4, List1array.ElementAt(i).ElementAt(5)); m_List3.SetItemText(list3pos, 5, List1array.ElementAt(i).ElementAt(6)); #ifdef LKAY_VERSION m_List3.SetItemText(list3pos, 6, List1array.ElementAt (i).ElementAt (7)); m_List3.SetItemText(list3pos, 7, List1array.ElementAt (i).ElementAt (8)); str=List1array.ElementAt (i).ElementAt (8); #else str = List1array.ElementAt(i).ElementAt(6); #endif list3pos++; } nchoosezs += GetZS(str); GetPath(str); if (!str.IsEmpty()) str = "," + str + ","; str.MakeLower(); if (kind == "4") m_no2array.Add(str); else m_noarray.Add(str); } } else { for (int i = 0; i < sparray.GetSize(); i++) { kind = "4";//sparray.ElementAt (i).ElementAt (4); if (kind == "4") { m_List3.InsertItem(list3pos, sparray.ElementAt(i).ElementAt(7)); m_List3.SetItemText(list3pos, 1, sparray.ElementAt(i).ElementAt(1)); m_List3.SetItemText(list3pos, 2, sparray.ElementAt(i).ElementAt(5)); m_List3.SetItemText(list3pos, 3, sparray.ElementAt(i).ElementAt(2)); m_List3.SetItemText(list3pos, 4, sparray.ElementAt(i).ElementAt(3)); #ifdef LKAY_VERSION m_List3.SetItemText(list3pos, 5, sparray.ElementAt (i).ElementAt (9)); m_List3.SetItemText(list3pos, 6, sparray.ElementAt (i).ElementAt (10)); m_List3.SetItemText(list3pos, 7, sparray.ElementAt (i).ElementAt (8)); #else m_List3.SetItemText(list3pos, 5, sparray.ElementAt(i).ElementAt(8)); // 8 dindansp:no2 #endif list3pos++; } else { m_List2.InsertItem(list2pos, sparray.ElementAt(i).ElementAt(7)); m_List2.SetItemText(list2pos, 1, sparray.ElementAt(i).ElementAt(1)); m_List2.SetItemText(list2pos, 2, sparray.ElementAt(i).ElementAt(5)); m_List2.SetItemText(list2pos, 3, sparray.ElementAt(i).ElementAt(3)); m_List2.SetItemText(list2pos, 4, sparray.ElementAt(i).ElementAt(8)); // 8 dindansp:no2 list2pos++; } str = sparray.ElementAt(i).ElementAt(8); // 8 dindansp:no2 str.MakeLower(); nchoosezs += GetZS(str); GetPath(str); if (!str.IsEmpty()) str = "," + str + ","; if (kind == "4") m_no2array.Add(str); else m_noarray.Add(str); } } if (g_List1array.GetSize()) { m_name1 = g_List1array.ElementAt(0).ElementAt(4); m_name2 = g_List1array.ElementAt(0).ElementAt(5); m_phone1 = g_List1array.ElementAt(0).ElementAt(61); m_phone2 = g_List1array.ElementAt(0).ElementAt(62); if (!m_name1.IsEmpty()) m_name = m_name1 + ","; m_name += m_name2; m_name.TrimRight(","); m_waiter3 = g_user.name; m_taoxizs = g_List1array.ElementAt(0).ElementAt(9); m_time5 = g_List1array.ElementAt(0).ElementAt(22); m_takezs = g_List1array.ElementAt(0).ElementAt(23); m_choosezs = g_List1array.ElementAt(0).ElementAt(24); m_money3 = g_List1array.ElementAt(0).ElementAt(3); m_oldmoney3 = m_money3; m_bz3 = g_List1array.ElementAt(0).ElementAt(57); m_urgent = g_List1array.ElementAt(0).ElementAt(40); m_delphotos = g_List1array.ElementAt(0).ElementAt(56);// Jeff获取选设计时,被删除的相片,选取的字段delphotos2;.读取正常,保存时未能正确保存到delphotos2字段; //printf("Jeff:看设计:delphotos2=%s\n\n",m_delphotos);//Jeff Printf m_status8 = g_List1array.ElementAt(0).ElementAt(55); m_time6 = g_List1array.ElementAt(0).ElementAt(48); m_time5old = m_time5; m_time6old = m_time6; m_checkstatus = g_List1array.ElementAt(0).ElementAt(55); UpdateData(false); } else { m_name1 = ""; m_name2 = ""; m_waiter3 = ""; m_taoxizs = ""; m_time5 = ""; m_takezs = ""; m_choosezs = ""; m_money3 = ""; m_bz3 = ""; m_urgent = ""; UpdateData(false); } return 1; } void ChoosePhotoSkin2::SortArray() { // if(m_mode2)return; m_bSort = !m_bSort; CStringArray *pArray[6] = { &m_patharray1, &m_patharray2, &m_patharray3, &m_patharray4, &m_patharray5, &m_patharray6 }; if (m_bSort == 0) { for (int i = 0; i < 6; i++) { if (pArray[i]->GetSize()) { int size = pArray[i]->GetSize() - 1; CString sTemp; int nPos; for (int ii = 0; ii < size; ii++) { nPos = rand() % (size - ii); sTemp = pArray[i]->ElementAt(size - ii); pArray[i]->SetAt(size - ii, pArray[i]->ElementAt(nPos)); pArray[i]->SetAt(nPos, sTemp); } } } } else { for (int i = 0; i < 6; i++) { m_combo1.ResetContent(); CString Temp; int j = 0; for ( j = 0; j < pArray[i]->GetSize(); j++) { m_combo1.AddString(pArray[i]->ElementAt(j)); } for (j = 0; j < pArray[i]->GetSize(); j++) { m_combo1.GetLBText(j, Temp); pArray[i]->SetAt(j, Temp); } } } { TerminateThread(); CStringArray *pArray = GetCurArray(); m_vFileName.clear(); for (int i = 0; i < pArray->GetSize(); i++) { CString filePath = pArray->ElementAt(i); filePath.MakeLower(); m_vFileName.push_back(filePath); } LoadThumbImages(); } } void ChoosePhotoSkin2::CheckForDisk() // 检查入底; { int i = 0; for ( i = 0; i < m_List2.GetItemCount(); i++) { if ("入底" == m_List2.GetItemText(i, 2))return; } for (i = 0; i < m_List3.GetItemCount(); i++) { if ("入底" == m_List3.GetItemText(i, 2))return; } i = m_List3.GetItemCount(); m_List3.InsertItem(i, ""); m_List3.SetItemText(i, 2, "入底"); m_no2array.Add(""); } void ChoosePhotoSkin2::CheckForAlbum() // 检查入册; { int i = 0; for ( i = 0; i < m_List2.GetItemCount(); i++) { if ("入册" == m_List2.GetItemText(i, 2))return; } for (i = 0; i < m_List3.GetItemCount(); i++) { if ("入册" == m_List3.GetItemText(i, 2))return; } i = m_List3.GetItemCount(); m_List3.InsertItem(i, ""); m_List3.SetItemText(i, 2, "入册"); m_no2array.Add(""); } void ChoosePhotoSkin2::GetPhotos()//得看设计 { m_patharray1.RemoveAll(); m_path.MakeLower(); CStringArray dirarray; CString str; if (1) { using namespace helper_coffs; ffsco o; o.dirs(1); o.find(LPCSTR(m_path), LPCSTR("*.*")); ffsco::typeT coo; ffsco::typeT::iterator it; coo = o.co_dir(); for (it = coo.begin(); coo.end() != it; it++) { str = (*it).c_str(); str.TrimRight("\\"); CString dirname = str.Right(str.GetLength() - str.ReverseFind('\\') - 1); if (dirname.Find("DelgaBook") != -1) { if (FindArray(&m_patharray1, str) == -1) { m_patharray1.Add(str); } } if (FindArray(&dirarray, str) == -1) { dirarray.Add(str); } } } if (1) { for (int i = 0; i < dirarray.GetSize(); i++) { using namespace helper_coffs; ffsco o; o.dirs(0); o.find(LPCSTR(dirarray.ElementAt(i)), LPCSTR("*.jpg")); ffsco::typeT coo; ffsco::typeT::iterator it; coo = o.co_file(); for (it = coo.begin(); coo.end() != it; it++) { str = (*it).c_str(); if (str.GetAt(str.ReverseFind('\\') + 1) == 's')continue; if (str.GetAt(str.ReverseFind('\\') + 1) == 'm')continue; str.MakeLower(); m_patharray1.Add(str); } } } CStringArray *pArray[1] = { &m_patharray1 }; for (int i = 0; i < 1; i++) { m_combo1.ResetContent(); CString Temp; int j = 0; for ( j = 0; j < pArray[i]->GetSize(); j++) { m_combo1.AddString(pArray[i]->ElementAt(j)); } for (j = 0; j < pArray[i]->GetSize(); j++) { m_combo1.GetLBText(j, Temp); pArray[i]->SetAt(j, Temp); } } } void ChoosePhotoSkin2::Save() { CString sql; CArraysparray; sparray.SetSize(m_List2.GetItemCount() + m_no2array.GetSize()); int i = 0; for ( i = 0; i < m_List2.GetItemCount(); i++) { sparray.ElementAt(i).Add(m_strOrderNumber); sparray.ElementAt(i).Add(m_List2.GetItemText(i, 0)); sparray.ElementAt(i).Add(m_List2.GetItemText(i, 1)); sparray.ElementAt(i).Add(m_List2.GetItemText(i, 2)); sparray.ElementAt(i).Add(m_List2.GetItemText(i, 3)); sparray.ElementAt(i).Add(m_List2.GetItemText(i, 4)); } for (int j = 0; j < m_no2array.GetSize(); j++) { sparray.ElementAt(i).Add(m_strOrderNumber); sparray.ElementAt(i).Add(m_List3.GetItemText(j, 0)); sparray.ElementAt(i).Add(m_List3.GetItemText(j, 1)); sparray.ElementAt(i).Add(m_List3.GetItemText(j, 2)); sparray.ElementAt(i).Add(m_List3.GetItemText(j, 3)); sparray.ElementAt(i).Add(m_List3.GetItemText(j, 4)); sparray.ElementAt(i).Add(m_List3.GetItemText(j, 5)); #ifdef LKAY_VERSION sparray.ElementAt (i).Add ( m_List3.GetItemText (j, 6) ); sparray.ElementAt (i).Add ( m_List3.GetItemText (j, 7) ); #endif sparray.ElementAt(i).Add("4"); i++; } if (sparray.GetSize() == 0) { sparray.SetSize(1); sparray.ElementAt(0).Add(m_strOrderNumber); } CMemFile memfile; CArchive ar(&memfile, CArchive::store); for (int ii = 0; ii < sparray.GetSize(); ii++) { sparray.ElementAt(ii).Serialize(ar); } ar.Close(); int length = memfile.GetLength(); BYTE *pData = memfile.Detach(); int size = sparray.GetSize(); BYTE *pData2 = new BYTE[length + sizeof(int)]; memcpy(pData2, pData, length); memcpy(pData2 + length, &size, sizeof(int)); delete[]pData; length += sizeof(int); CString savepath; savepath.Format("%s\\%s.dat", g_mainpath, m_strOrderNumber); if (m_mode2)savepath.Format("%s\\%s-2.dat", g_mainpath, m_strOrderNumber); if (1) { CFile fp; fp.Open(savepath, CFile::modeCreate | CFile::modeWrite); fp.Write(pData2, length); fp.Close(); } delete[]pData2; } void ChoosePhotoSkin2::DrawLogin() { CRect rc; ((MyBmpButton2*)m_picarray.ElementAt(3))->GetWindowRect(rc); ScreenToClient(rc); rc.right -= rc.left; rc.left = 5; rc.right += 5; rc.top += 20; rc.right -= 15; CDC *pDC = GetDC(); Graphics graph(pDC->GetSafeHdc()); Rect destinationRect(rc.left, rc.top, rc.Width(), rc.Height()); RectF layoutRect(rc.left, rc.top, rc.Width(), rc.Height()); rc.left /= g_fscalex; rc.right /= g_fscalex; rc.top /= g_fscaley; rc.bottom /= g_fscaley; // graph.SetSmoothingMode(SmoothingModeHighQuality); graph.DrawImage(m_pBk, destinationRect, rc.left, rc.top, rc.Width(), rc.Height(), UnitPixel); StringFormat format; format.SetAlignment(StringAlignmentNear); SolidBrush *Brush = new SolidBrush(Color(255, 255, 255, 255)); CString str; str.Format("张数:%d", m_List1.GetItemCount()); int leng = GetLengthEx(str); BSTR bstr = str.AllocSysString(); Gdiplus::Font *g_TimerFont = new Gdiplus::Font(L"黑体", 13); graph.SetTextRenderingHint(TextRenderingHintAntiAlias); graph.DrawString( bstr, leng, g_TimerFont, layoutRect, &format, Brush); delete Brush; delete g_TimerFont; SysFreeString(bstr); ReleaseDC(pDC); } //-------------------------------------------------- // remark by Jeff 2014.12.15 // 函数:CheckOK // 描述:判断字符串是否是数字组成; // 参数:name 要判断的字符串; // 返回:如果是数字组成返回1,否则返回0; //-------------------------------------------------- BOOL ChoosePhotoSkin2::CheckOK(CString name) { if (name.GetLength() > 4)return 0; for (int i = 0; i < name.GetLength(); i++) { if (name.GetAt(i) < '0' || name.GetAt(i) > '9')return 0; } return 1; } //-------------------------------------------------- // remark by Jeff 2014.12.15 // 函数:CheckName // 描述:类似CheckOK,判断字符串是否是数字组成(除去"$" "."两符号以及后缀名); // 参数:name 要判断的字符串; // 返回:如果是数字组成返回1,否则返回0; //-------------------------------------------------- BOOL ChoosePhotoSkin2::CheckName(CString name) {//$001.002.003 int pos = name.Find("$"); if (pos != 0)return 0; name.Delete(0, 1); pos = name.Find("."); while (pos != -1) { if (CheckOK(name.Left(pos)) == 0)return 0; name = name.Right(name.GetLength() - pos - 1); pos = name.Find("."); } return CheckOK(name); } void ChoosePhotoSkin2::DelNo(CString no) { CString no2; for (int i = 0; i < m_patharray1.GetSize(); i++) { no2 = m_patharray1.ElementAt(i); no2 = no2.Right(no2.GetLength() - no2.ReverseFind('\\') - 1); no2 = no2.Left(no2.Find('.')); if (no == no2) { m_patharray1.RemoveAt(i); return; } } } CString ChoosePhotoSkin2::GetZSInfo(int iItem) { if (m_mode != 1) CalChooseZS(); CString str; // str.Format("%d/%d %d+", m_patharray2.GetSize(), atoi(m_taoxizs), max(0,m_patharray2.GetSize()-atoi(m_taoxizs))); CString scount = m_List1.GetItemText(iItem, 0); int ncount = 0; int npos = scount.Find("\r\n"); while (npos != -1) { ncount++; scount = scount.Right(scount.GetLength() - npos - 2); npos = scount.Find("\r\n"); } /* if(m_mode2) str.Format("X:%d", ncount); else str.Format("X:%d %d/%d %d+ S:%d/%d", ncount, m_patharray2.GetSize(), atoi(m_taoxizs), max(0,m_patharray2.GetSize()-atoi(m_taoxizs)), GetNoSelPhotoCount(), max(0, atoi(m_taoxizs)-m_patharray2.GetSize())); */ CString zs = m_taoxizs; int pos = zs.Find("\\"); if (pos != -1) { zs = zs.Left(pos); } if (m_mode2) str.Format("X:%d", ncount); else str.Format("选中次数:%d 已选/应选:%d/%d\r\n加选:%d+ 未选/剩余:%d/%d", ncount, m_patharray2.GetSize(), atoi(zs), max(0, m_patharray2.GetSize() - atoi(zs)), max(0, atoi(zs) - m_patharray2.GetSize()), GetNoSelPhotoCount()); return str; } // GetSelCountFromName // 描述:返回相片数量; // 参数: // [IN]name: // dindansp表字段no里的内容;(example:001,002,003(陈天,入册),004) // [OUT]scount // // void ChoosePhotoSkin2::GetSelCountFromName(CString name, CString &scount) { name.TrimLeft(","); name.TrimRight(","); if (name.GetLength() == 0) { scount = "0"; return; } // Jeff:处理有问题,若相片名为:003(陈天,入册),这就会多计数一次; // 需要完成的一个处理; int ncount = 0; int npos = name.Find(","); while (npos != -1) { ncount++; name = name.Right(name.GetLength() - npos - 1); npos = name.Find(","); } ncount++; scount.Format("%d", ncount); } void ChoosePhotoSkin2::CalChooseZS() { m_patharray2.RemoveAll(); CString str; int i = 0; for ( i = 0; i < m_noarray.GetSize(); i++) { str = m_noarray.ElementAt(i); GetPath(str); } for (i = 0; i < m_no2array.GetSize(); i++) { str = m_no2array.ElementAt(i); GetPath(str); } } //入册 // void ChoosePhotoSkin2::GetAlbumPhoto()//查看入册相片; { if (m_mode == 4)return; m_mode = 4; m_patharray5.RemoveAll(); CString photosno; int i = 0; for ( i = 0; i < m_List3.GetItemCount(); i++) { if (m_List3.GetItemText(i, 2) != "入册")continue; photosno = m_no2array.ElementAt(i); break; } photosno = "," + photosno + ","; for (i = m_patharray1.GetSize() - 1; i >= 0; i--) { CString no; no = m_patharray1.ElementAt(i); no = no.Right(no.GetLength() - no.ReverseFind('\\') - 1); no = no.Left(no.Find('.')); no = "," + no; no += ","; if (photosno.Find(no) != -1) { no = m_patharray1.ElementAt(i); m_patharray5.Add(no); } } LoadPhotos(); } void ChoosePhotoSkin2::GetDiskPhoto()//查看入底相片; { if (m_mode == 5)return; m_mode = 5; m_patharray6.RemoveAll(); CString photosno; int i = 0; for ( i = 0; i < m_List3.GetItemCount(); i++) { if (m_List3.GetItemText(i, 2) != "入底")continue; photosno = m_no2array.ElementAt(i); break; } photosno = "," + photosno + ","; for (i = m_patharray1.GetSize() - 1; i >= 0; i--) { CString no; no = m_patharray1.ElementAt(i); no = no.Right(no.GetLength() - no.ReverseFind('\\') - 1); no = no.Left(no.Find('.')); no = "," + no; no += ","; if (photosno.Find(no) != -1) { no = m_patharray1.ElementAt(i); m_patharray6.Add(no); } } LoadPhotos(); } BOOL ChoosePhotoSkin2::ReLoad() { if (m_mode2 == 0) return GetData(); else return GetData2(); } BOOL ChoosePhotoSkin2::IsPhoto2Exist() { //printf("Jeff:g_path2=%s\n\n",g_path2); CString path2; CString path = g_path2 + "\\"; path += m_strOrderNumber; path += "\\"; //printf("Jeff:path=%s\n\n",path); #if 0 // 原:这里只是搜索当前文件夹有没有图片文件,并没有对子文件夹进行搜索,将一直返回错误值; using namespace helper_coffs; ffsco o; o.dirs(0); o.find(LPCSTR(path), LPCSTR("*.jpg")); ffsco::typeT coo; coo = o.co_file(); printf("Jeff:%d\n\n",coo.size()); return coo.size(); #else // Jeff.搜索订单文件夹里的相片;2014.09.02 CStringArray StrSubFoloderArray; using namespace helper_coffs; ffsco o; o.dirs(1); // Jeff.1:查找子目录; o.find(LPCSTR(path), LPCSTR("*.*")); // 可能存在m和s开头的缩略图,需要过滤掉; if (o.count() == 0) return 0; // 获取子目录数; ffsco::typeT coo; ffsco::typeT::iterator it; coo = o.co_dir(); for (it = coo.begin(); it != coo.end(); it++) { if (::FindArray(&StrSubFoloderArray, (*it).c_str()) == -1) StrSubFoloderArray.Add((*it).c_str()); } // 获取子目录下的文件数; CStringArray StrPhotoArray; for (int n = 0; n < StrSubFoloderArray.GetSize(); n++) { ffsco op; op.dirs(0); op.find(LPCSTR(StrSubFoloderArray.ElementAt(n)), LPCSTR("*.*")); ffsco::typeT coo; ffsco::typeT::iterator itp; coo = op.co_file(); for (itp = coo.begin(); itp != coo.end(); itp++) { StrPhotoArray.Add((*itp).c_str()); } } CString strTempFile; int nIndex = 0; int nSizeOfFile = 0; // 记录相片文件数; int nCount = StrPhotoArray.GetSize(); for (int i = 0; i < nCount; i++) { strTempFile = StrPhotoArray.ElementAt(i); nIndex = strTempFile.ReverseFind('\\'); strTempFile = strTempFile.Right(strTempFile.GetLength() - nIndex - 1); if (strTempFile.Left(1) == "m" || strTempFile.Left(1) == "s") { continue; } strTempFile = strTempFile.Right(4); strTempFile.MakeLower(); if (strTempFile == ".jpg") { nSizeOfFile++; } else if (strTempFile == ".raw") { nSizeOfFile++; } else if (strTempFile == ".cr2") { nSizeOfFile++; } else if (strTempFile == ".nef") { nSizeOfFile++; } } return nSizeOfFile; #endif } void ChoosePhotoSkin2::ReLoadPhoto() { if (!((MyBmpButton2*)m_picarray.ElementAt(8))->GetPushDown()) { m_path = g_path3 + "\\"; m_path += m_strOrderNumber; m_path += "\\"; GetPhotos(); m_bChooseBig = 0; } else { m_bChooseBig = 1; IsGrowthTx growthtxdlg; growthtxdlg.m_mode = 1; growthtxdlg.m_strOrderNumber = m_strOrderNumber; growthtxdlg.DoModal(); m_bGrowthTX = growthtxdlg.m_bGrowthTx; m_seltxname = growthtxdlg.m_seltxname; m_patharray1.RemoveAll(); if (CheckHC()) // { CString str; m_bFromLocal = 1; char path[MAX_PATH]; ::GetSystemDirectory(path, MAX_PATH); CString sysdir = path; sysdir += "\\lyfz"; ::CreateDirectory(sysdir, NULL); sysdir += "\\"; sysdir += m_strOrderNumber; using namespace helper_coffs; ffsco o; o.dirs(1); o.find(LPCSTR(sysdir), LPCSTR("*.jpg")); ffsco::typeT coo; ffsco::typeT::iterator it; coo = o.co_file(); for (it = coo.begin(); coo.end() != it; it++) { str = (*it).c_str(); if (str.GetAt(str.ReverseFind('\\') + 1) != 's' && str.GetAt(str.ReverseFind('\\') + 1) != 'm') { m_patharray1.Add(str); } } } if (m_patharray1.GetSize() == 0) { if (IsPhoto2Exist()) { SelBrunDevice dlg; dlg.m_mode = 1; if (dlg.DoModal() == IDOK) m_nChoosePhotoType = dlg.m_sel; else m_nChoosePhotoType = 0; //m_nChoosePhotoType=0 原片+修片 1:修片 2:原片 } else AfxMessageBox("温馨提示:\r\n未找到初修片,将使用原片选片", MB_ICONINFORMATION); { CString path, path2; m_path = g_path1 + "\\"; m_path += m_strOrderNumber; m_path += "\\"; if (m_seltxname != "" && m_seltxname != "全部") { m_path += m_seltxname; m_path += "\\"; } if (m_nChoosePhotoType == 1) // 选片:修片 { m_path = g_path2 + "\\"; m_path += m_strOrderNumber; m_path += "\\"; } CString filename; using namespace helper_coffs; ffsco o; o.dirs(1); o.find(LPCSTR(m_path), LPCSTR("*.*")); ffsco::typeT coo; ffsco::typeT::iterator it; coo = o.co_file(); for (it = coo.begin(); coo.end() != it; it++) { path = (*it).c_str(); if (path.GetAt(path.ReverseFind('\\') + 1) != 's' && path.GetAt(path.ReverseFind('\\') + 1) != 'm') { path.MakeLower(); filename = path.Right(path.GetLength() - path.ReverseFind('\\') - 1); if (filename.Find(".") != -1) filename = filename.Left(filename.Find(".")); if (!myisdigit(filename))continue; if (m_nChoosePhotoType == 1) { #if JEFF_TEST_ON if (PathFileExists(path)) m_patharray1.Add(path); #else m_patharray1.Add(path); #endif } else { path2 = path; if (m_nChoosePhotoType == 0) path2.Replace("客户原片", "修好的片"); if (m_bGrowthTX == 0) { int pos = path2.Find(m_strOrderNumber); pos += m_strOrderNumber.GetLength(); int pos2 = path2.ReverseFind('\\'); path2 = path2.Left(pos) + path2.Right(path2.GetLength() - pos2); } if (m_nChoosePhotoType == 0 && ::PathFileExists(path2)) { m_patharray1.Add(path2); } else { path2.Replace(".raw", ".jpg"); if (PathFileExists(path2)) { m_patharray1.Add(path2); continue; } path2.Replace(".nef", ".jpg"); if (PathFileExists(path2)) { m_patharray1.Add(path2); continue; } path2.Replace(".cr2", ".jpg"); if (PathFileExists(path2)) { m_patharray1.Add(path2); continue; } else { if (path.Right(3) != "jpg") continue; #if JEFF_TEST_ON if (PathFileExists(path)) m_patharray1.Add(path); #else m_patharray1.Add(path); #endif } } } } } } // if(0) {//多种修好的效果 CString path, path2; path2 = g_path2 + "\\"; path2 += m_strOrderNumber; path2 += "\\"; using namespace helper_coffs; ffsco o; o.dirs(0); o.find(LPCSTR(path2), LPCSTR("*.jpg")); ffsco::typeT coo; ffsco::typeT::iterator it; coo = o.co_file(); for (it = coo.begin(); coo.end() != it; it++) { path = (*it).c_str(); if (path.GetAt(path.ReverseFind('\\') + 1) != 's' && path.GetAt(path.ReverseFind('\\') + 1) != 'm') { path.MakeLower(); path2 = path.Right(path.GetLength() - path.ReverseFind('\\') - 1); if (path2.Find("-") != -1) { #if JEFF_TEST_ON if (PathFileExists(path)) m_patharray1.Add(path); #else m_patharray1.Add(path); #endif } } } } } if (m_patharray1.GetSize() && atoi(g_cominfoarray.ElementAt(0).ElementAt(61))) { int size = m_patharray1.GetSize() - 1; CString sTemp; int nPos; for (int i = 0; i < size; i++) { nPos = rand() % (size - i); sTemp = m_patharray1.ElementAt(size - i); m_patharray1.SetAt(size - i, m_patharray1.ElementAt(nPos)); m_patharray1.SetAt(nPos, sTemp); } } } m_mode = 0; LoadPhotos(); } BOOL ChoosePhotoSkin2::CheckHC()//检查本机上是否有缓存的相片; { char path[MAX_PATH]; ::GetSystemDirectory(path, MAX_PATH); //printf("Jeff:CheckHC::path=%s\n\n",path);//Jeff Printf CString sysdir = path; sysdir += "\\lyfz"; ::CreateDirectory(sysdir, NULL); //printf("Jeff:CheckHC::sysdir1=%s\n\n",sysdir);//Jeff Printf sysdir += "\\"; sysdir += m_strOrderNumber; //printf("Jeff:CheckHC::sysdir2=%s\n\n",sysdir);//Jeff Printf using namespace helper_coffs; ffsco o; o.dirs(0); o.find(LPCSTR(sysdir), LPCSTR("*.jpg")); ffsco::typeT coo; coo = o.co_file(); if (coo.size()) { if (AfxMessageBox("提醒, 此客人有本机缓存片,是否使用缓存片?", MB_YESNO | MB_ICONINFORMATION) == IDYES) return 1; } return 0; }