1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303 |
- // 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 "ComparePhoto.h"
- #include "ReplaceDesignNo.h"
- #include "Login2.h"
- #include "TimeOutDlg.h"
- #include "ShowEffect.h"
- #include "SelBrunDevice.h"
- #include "ProductChooseFilter.h"
- #include "NewFolderDlg.h"
- #include "NetShareInfo.h"
- #include "ShowMsg3.h"
- using namespace helper_coffs;
- #ifdef _DEBUG
- //#define new DEBUG_NEW (如果出现new时传多个参数会出错)
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
- using namespace helper_coffs;
- extern int GetOrientation(Image *image);
- extern HCURSOR g_cursorhand;
- /////////////////////////////////////////////////////////////////////////////
- // ChoosePhotoSkin2 message handlers
- extern void SizeToContent(HWND hwnd, Image *img);
- //mode
- //0 全部
- //1 选中
- //2 未选
- //3 删除
- //4 入册
- //5 入底
- /////////////////////////////////////////////////////////////////////////////
- // ChoosePhotoSkin2 dialog IDC_EDITzs
- ChoosePhotoSkin2::ChoosePhotoSkin2(CWnd* pParent /*=NULL*/) : ChoosePhotoBase(ChoosePhotoSkin2::IDD, pParent)
- {
- m_time4 = g_date;
- g_pMainWnd->GetSkin();
- m_strStatusOfChoosePhoto = _T("未选");
- m_pCurrSelFolder = NULL;
- m_OpenFolder = NULL;
- m_pFolderImg = NULL;
- m_Runingmode = 0;
- m_bHide = atoi(g_cominfoarray.ElementAt(0).ElementAt(59));
- }
- ChoosePhotoSkin2::ChoosePhotoSkin2(DWORD id, CWnd* pParent) : ChoosePhotoBase(id, pParent)
- {
- m_time4 = g_date;
- g_pMainWnd->GetSkin();
- m_strStatusOfChoosePhoto = _T("未选");
- m_pCurrSelFolder = NULL;
- m_OpenFolder = NULL;
- m_pFolderImg = NULL;
- m_Runingmode = 0;
- m_bHide = atoi(g_cominfoarray.ElementAt(0).ElementAt(59));
- }
- void ChoosePhotoSkin2::DoDataExchange(CDataExchange* pDX)
- {
- CDialog::DoDataExchange(pDX);
- //{{AFX_DATA_MAP(ChoosePhotoSkin2)
- DDX_Control(pDX, IDC_COMBO1, m_combo1);
- 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_COMMAND(IDM_NEWFOLDER, OnNewFolder)
- ON_COMMAND(IDM_DELFOLDER, OnDelFolder)
- ON_COMMAND(IDM_OPENFOLDER, OnOpenFolder)
- ON_COMMAND(IDM_RETURNMAINDIR, OnReturnMainDir)
- ON_MESSAGE(WM_USER + 200, UpdateTakeZS)
-
- END_MESSAGE_MAP()
- /////////////////////////////////////////////////////////////////////////////
- // ChoosePhotoSkin2 message handlers
- BOOL ChoosePhotoSkin2::OnInitDialog() //初始化选片*看设计
- {
- ChoosePhotoBase::OnInitDialog();
- //加载相片和文件夹icon;
- LoadImageFromRes(&m_pHideImg, MAKEINTRESOURCE(IDR_JPG5), _T("JPG"));
- if(m_pHideImg == NULL)
- {
- MessageBox(_T("加载图标失败"));
- return FALSE;
- }
- LoadImageFromRes(&m_pFolderImg, MAKEINTRESOURCE(IDR_JPG14), _T("JPG"));
- if(m_pFolderImg == NULL)
- {
- MessageBox(_T("加载图标失败"));
- return FALSE;
- }
- // 1.加载lia皮肤信息;
- 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 + _T("\\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//SZWNS_VERSION
- }
- else
- m_picarray.Add(NULL);
- m_rcarray.Add(g_resdata2.rect[i]);
- }
- delete[]pDataBegin;
- //初始化按钮位置;
- 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);
- }
- }
- {
- 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//mnls
- ((MyBmpButton2*)m_picarray.ElementAt(7))->ShowWindow(SW_HIDE);
- ((MyBmpButton2*)m_picarray.ElementAt(7))->EnableWindow(0);
- Graphics graph(m_pBk);
- Image *img = NULL;
- ::LoadImageFromBuf(&img, g_mainpath + _T("\\图片\\标题-选片.jpg"));
- if (img)
- {
- if (img->GetWidth() == 2000)
- {
- graph.SetSmoothingMode(SmoothingModeHighQuality);
- graph.DrawImage(img, 0, 0);
- }
- delete img;
- }
- #endif//MNLS_VERSION
- //初始化列表位置;
- CRect listrc = m_rcarray.ElementAt(6);
- {
- CRect rc;
- GetClientRect(rc);
- rc.top = listrc.top;
- m_List1.MoveWindow(rc);
- }
-
- //创建图标列表控件;
- 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);
- // 2015.11.13 保存列表添加多一列商品备注选项;
- m_List3.InsertColumn(6, _T("备注"), LVCFMT_LEFT, 300);
- #endif//LKAY_VERSION
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- // 以上均为界面布局;
- // 下面的代码才是数据处理;
- CString path, str;
- {
- #if USE_SHARE_FLORD
- LoadSelectPhotos();
- #else
- //选择此次拍摄名称DLG(如:拍摄景点)
- GetTXName(&m_strOrderNumber, 1, m_bGrowthTX, m_seltxname);
- // HC:缓存,checkHC检查在本机是否存在缓存的相片;
- if (IsThereACacheImg()) // (一般返回0)这一步是查看C:\WINDOWS\System32\有没有lyfz的文件夹,以及该文件夹下是否有订单号文件夹和相片;
- m_bFromLocal = 1;
- //printf("Jeff:m_AllPhotoPath.GetSize()=%d\n\n",m_AllPhotoPath.GetSize());// Jeff Printf;
- if (m_AllPhotoPath.GetSize() == 0) // m_AllPhotoPath:查看全部相片.
- {
- if (IsPhoto2Exist())//如果订单文件夹存在;
- {
- SelBrunDevice dlg;
- dlg.m_mode = 0;
- if (dlg.DoModal() == IDOK) // m_nChoosePhotoType =0:修片; =1原片 =2:原片+修片
- m_nChoosePhotoType = dlg.m_sel;
- else
- m_nChoosePhotoType = 1;
- }
- else AfxMessageBox(_T("温馨提示:\r\n未找到初修片,将使用原片选片"), MB_ICONINFORMATION);
- CString path2 = _T("");
- m_path = g_path1 + _T("\\");
- m_path += m_strOrderNumber;
- m_path += _T("\\");
- if(!IsShareFolderExist(m_path))
- AfxMessageBox(_T("温馨提示:\r\n未找到") + m_path, MB_ICONINFORMATION);
- if (m_seltxname != "" && m_seltxname != _T("全部"))
- {
- m_path += m_seltxname;
- m_path += _T("\\");
- }
- if (m_nChoosePhotoType == 1) // 选片:选择修片文件夹;
- {
- m_path = g_path2 + _T("\\");
- m_path += m_strOrderNumber;
- m_path += _T("\\");
- if(!IsShareFolderExist(m_path))
- AfxMessageBox(_T("温馨提示:\r\n未找到") + m_path, MB_ICONINFORMATION);
- #if JEFF_TEST_ON // 成长套系选择修好的片时需要; [3/25/2015 lyfz]
- if (m_seltxname != "" && m_seltxname != _T("全部"))
- {
- m_path += m_seltxname;
- m_path += _T("\\");
- }
- #endif//JEFF_TEST_ON
- }
- //获取所有相片
- GetAllPhotoPath(m_path, m_AllPhotoPath);
- if (m_nChoosePhotoType != 2) // Jeff:如果不是只查看原片 ,只有初修片里才有多种效果;
- //if (m_nChoosePhotoType != 0) // Jeff:如果不是只查看原片;
- {//多种修好的效果
- CString path2;
- path2 = g_path2 + _T("\\");
- path2 += m_strOrderNumber;
- path2 += _T("\\"); //printf("Jeff:****paht2=%s\n\n",path2);//Jeff Printf;path2="修好的片"
-
- 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(_T("-")) != -1)
- {
- #if JEFF_TEST_ON
- if(PathFileExists(path))
- m_AllPhotoPath.Add(path);
- #else
- m_AllPhotoPath.Add(path);
- #endif//JEFF_TEST_ON
- }
- }
- }
- }
- }
- #endif//USE_SHARE_FLORD
- if (m_AllPhotoPath.GetSize() && atoi(g_cominfoarray.ElementAt(0).ElementAt(61)))
- {
- int size = m_AllPhotoPath.GetSize() - 1;
- CString sTemp;
- int nPos;
- for (int i = 0; i < size; i++)
- {
- nPos = rand() % (size - i);
- sTemp = m_AllPhotoPath.ElementAt(size - i);
- m_AllPhotoPath.SetAt(size - i, m_AllPhotoPath.ElementAt(nPos));
- m_AllPhotoPath.SetAt(nPos, sTemp);
- }
- }
- }
- // 开始选片;读取数据;
- 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;
- }
- }
- }
- // 记录要删除的相片;
- RecordDeletedPhotos(&m_delphotos, m_DelPhotoPath);
- // 加载文件夹;
- LoadFolder();
- //在界面上显示图片;
- LoadPhotos();
- if (atoi(g_cominfoarray.ElementAt(0).ElementAt(95)) || g_cominfoarray.ElementAt(0).ElementAt(95) == _T(""))
- {
- 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;
- }
- 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::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();
- }
- //清除资源的路径
- ClearResData();
- ClearFolder();
-
- if(m_pHideImg)
- delete m_pHideImg;
- if(m_pFolderImg)
- delete m_pFolderImg;
-
- CDialog::OnDestroy();
- }
- catch (...)
- {
- }
- }
- #ifdef VC60
- 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_SelectCategory == id - 1 && m_SelectCategory != 1)
- return;
- m_SelectCategory = id - 1;
- if(INDX_SEL == m_SelectCategory)
- OnSelPhoto();
- LoadPhotos();
- }
- break;
- case 3://查看未选按钮事件;
- {
- m_SelectCategory = INDX_NOSEL;
- m_sChooseFilter = _T("");
- UpdateChooseZS();
- GetNoSelPhoto();
- LoadPhotos();
- }
- break;
- case 13: // 查看入册相片按钮事件;
- GetAlbumPhoto();
- LoadPhotos();
- break;
- case 14: // 查看入底相片按钮事件;
- GetDiskPhoto();
- LoadPhotos();
- break;
- case 15: // 效果图按钮事件;
- {
- ShowEffectDlg dlg;
- if(m_OpenFolder)
- dlg.m_pPhotopatharray = this->GetCurArray(0, m_OpenFolder);
- else
- dlg.m_pPhotopatharray = this->GetCurArray(m_SelectCategory);
- dlg.DoModal();
- }
- break;
- case 5: // 保存按钮事件;
- OnButton4();
- break;
- case 6: // 关闭按钮事件 ;
- if (m_bModify && m_bCanSave)
- {
- ShowMsg3 dlg;
- dlg.m_strMsg = _T("提醒, 选片修改未保存, 是否保存后再退出?");
- // if (AfxMessageBox(_T("提醒, 选片修改未保存, 是否保存后再退出?"), MB_YESNO | MB_ICONINFORMATION) == IDYES)
- if(dlg.DoModal() == IDOK)
- {
- OnButton4();
- if (m_bSaveFail)
- {
- AfxMessageBox(_T("连接服务器失败, 保存失败, 您可以在本机上重新进入选片恢复到选中状态!"));
- CDialog::OnCancel();
- return;
- }
- return;
- }
- else
- {
- CString savepath = _T("");
- savepath.Format("%s\\%s.dat", g_mainpath, m_strOrderNumber);
- ::DeleteFile(savepath); // 删除*.dat文件;
- }
- }
- 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;
- }
- }
- #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_SelectCategory == id - 1 && m_SelectCategory != 1)
- return 0;
- m_SelectCategory = id - 1;
- if(INDX_SEL == m_SelectCategory)
- OnSelPhoto();
- LoadPhotos();
- }
- break;
- case 3://查看未选按钮事件;
- {
- m_SelectCategory = INDX_NOSEL;
- m_sChooseFilter = _T("");
- UpdateChooseZS();
- GetNoSelPhoto();
- LoadPhotos();
- }
- break;
- case 13: // 查看入册相片按钮事件;
- GetAlbumPhoto();
- LoadPhotos();
- break;
- case 14: // 查看入底相片按钮事件;
- GetDiskPhoto();
- LoadPhotos();
- break;
- case 15: // 效果图按钮事件;
- {
- ShowEffectDlg dlg;
- if(m_OpenFolder)
- dlg.m_pPhotopatharray = this->GetCurArray(0, m_OpenFolder);
- else
- dlg.m_pPhotopatharray = this->GetCurArray(m_SelectCategory);
- dlg.DoModal();
- }
- break;
- case 5: // 保存按钮事件;
- OnButton4();
- break;
- case 6: // 关闭按钮事件 ;
- if (m_bModify && m_bCanSave)
- {
- ShowMsg3 dlg;
- dlg.m_strMsg = _T("提醒, 选片修改未保存, 是否保存后再退出?");
- // if (AfxMessageBox(_T("提醒, 选片修改未保存, 是否保存后再退出?"), MB_YESNO | MB_ICONINFORMATION) == IDYES)
- if(dlg.DoModal() == IDOK)
- {
- OnButton4();
- if (m_bSaveFail)
- {
- AfxMessageBox(_T("连接服务器失败, 保存失败, 您可以在本机上重新进入选片恢复到选中状态!"));
- CDialog::OnCancel();
- return 0;
- }
- return 0;
- }
- else
- {
- CString savepath = _T("");
- savepath.Format("%s\\%s.dat", g_mainpath, m_strOrderNumber);
- ::DeleteFile(savepath); // 删除*.dat文件;
- }
- }
- 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;
- }
- return 0;
- }
- #endif
- BOOL ChoosePhotoSkin2::OnEraseBkgnd(CDC* pDC)
- {
- return 1;
- }
- 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)
- {
- }
- //------------------------------------------------------------------
- // 函数: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 // 这一块代码是用于处理回车键;
- int nFolderNum = m_vFolder.size();
- if(m_OpenFolder == NULL)
- {
- //双击文件夹;
- if(iItem < nFolderNum)
- {
- m_pCurrSelFolder = FindForderFromIndx(iItem);
- if(m_pCurrSelFolder)
- {
- //打开文件夹;
- m_OpenFolder = m_pCurrSelFolder;
- if(m_SelectCategory == INDX_INTOALBUM)
- GetAlbumPhoto();
- else if(m_SelectCategory == INDX_ENTRYPHASSE)
- GetDiskPhoto();
- else if(m_SelectCategory == INDX_SEL)
- UpdateChooseZS();
- else if(m_SelectCategory == INDX_NOSEL)
- {
- m_sChooseFilter = _T("");
- UpdateChooseZS();
- GetNoSelPhoto();
- }
- LoadPhotos();
- }
- return;
- }
- else
- {
- iItem = iItem - nFolderNum;
- }
- }
- CArray<int, int>posarray;
- posarray.Add(iItem);
- // 获取剩下的图片位置;
- while (pos)
- {
- int iItem = m_List1.GetNextSelectedItem(pos);
- posarray.Add(iItem);
- if (posarray.GetSize() > 3)
- break;
- }
- if (posarray.GetSize() >= 2)
- {
- CStringArray* pPtahArray = NULL;
- if(m_OpenFolder)
- {
- nFolderNum = 0;
- pPtahArray = GetCurArray(0, m_OpenFolder);
- }
- else
- pPtahArray = GetCurArray(m_SelectCategory);
-
- CComparePhoto dlg;
- dlg.m_path1 = pPtahArray->ElementAt(posarray.ElementAt(0) - nFolderNum);
- dlg.m_path2 = pPtahArray->ElementAt(posarray.ElementAt(1) - nFolderNum);
- if (posarray.GetSize() > 2)
- dlg.m_path3 = pPtahArray->ElementAt(posarray.ElementAt(2) - nFolderNum);
- if (posarray.GetSize() > 3)
- dlg.m_path4 = pPtahArray->ElementAt(posarray.ElementAt(3) - nFolderNum);
- dlg.DoModal();
- return;
- }
- #endif //JEFF_TEST_OFF
- m_showpichwd = NULL;
- // 双击小图查看大图;
- ShowPic22 dlg;
- dlg.m_pParent = this;
- dlg.m_nCurImgPos = iItem;
- CStringArray* pArray = NULL;
- if(m_OpenFolder)
- pArray = GetCurArray(m_SelectCategory, m_OpenFolder);
- else
- pArray = GetCurArray(m_SelectCategory);
- if(pArray == NULL)
- return;
- //100为设定使用m图
- if (atoi(g_cominfoarray.ElementAt(0).ElementAt(100)))
- {
- CStringArray saCurrentImagePath; // 当前列表相片;
- CStringArray arraymsize; // 对应的"m"相片路径;
- 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_AryOfImgPath = &arraymsize;
- dlg.m_pPathArrayBigsize = &saCurrentImagePath;
- dlg.DoModal();
- }
- else
- {
- dlg.m_AryOfImgPath = pArray;
- dlg.DoModal();
- }
- m_showpichwd = NULL;
- }
- void ChoosePhotoSkin2::OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult) // 双击图片列表!
- {
- OnDblclkList1();
- *pResult = 0;
- }
- /************************************************************************/
- /*
- 函数: GetData
- 描述: 选片模式
- 参数:
- 返回:
- 注意:
- */
- /************************************************************************/
- BOOL ChoosePhotoSkin2::GetData()//选片模式;
- {
- m_List2.DeleteAllItems();
- m_List3.DeleteAllItems();
- m_noarray.RemoveAll();
- m_no2array.RemoveAll();
- m_oldsparray.RemoveAll();
- CString filter = _T("");
- //选片
- #ifdef CHILD_VERSION
- 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
- filter = "id='" + m_strOrderNumber + "' and kind<>'2';id='" + m_strOrderNumber + "';;id='" + m_strOrderNumber + "'";
- #endif //CHILD_VERSION
-
- //订单号、商品编号、商品价格、订单商品数量、商品类型、商品名称、选片选中相片名、自增id、选设计选中相片名;
- 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;
- CArray<CStringArray, CStringArray> sparray; //dindansp表;//订单号、商品编号、商品价格、订单商品数量、商品类型、商品名称、选片选中相片名、自增id、选设计选中相片名;
- DataToArray(&sparray, &g_List1array, &m_sparray, &m_oldsparray);
- m_SelPhotoPath.RemoveAll();
- CString str(_T("")), kind(_T(""));
- int nchoosezs = 0;
- int list2pos = 0;
- int list3pos = 0;
- CString savepath;
- savepath.Format(_T("%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(_T("%Y%m%d"));
- BOOL bLoadHistory = 0;
- if (PathFileExists(savepath) && stm1 > stm2)
- {
- if (AfxMessageBox(_T("提醒:请谨慎操作\r\n上次选片未正常退出, 是否还原到上次选片状态?"), MB_YESNO | MB_ICONINFORMATION) == IDYES)
- bLoadHistory = 1;
- }
- int i = 0;
- if (bLoadHistory)
- {
- //还原到上次选片状态
- CArray<CStringArray, CStringArray> List1array;
- //读取数据
- CFile fp;
- fp.Open(savepath, CFile::modeRead);
- DWORD nMessageLen = fp.GetLength();
- BYTE *szChatMessage = new BYTE[nMessageLen];
- fp.Read(szChatMessage, nMessageLen);
- fp.Close();
- int count = 0;
- memcpy(&count, szChatMessage + (nMessageLen - sizeof(int)), sizeof(int));
- CMemFile memfile;
- memfile.Attach(szChatMessage, nMessageLen);
- CArchive ar(&memfile, CArchive::load);
- List1array.SetSize(count);
- 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));
- m_List3.SetItemText(list3pos, 6, List1array.ElementAt(i).ElementAt(9));
- #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 //#ifdef LKAY_VERSION
- list3pos++;
- }
- nchoosezs += GetZS(str);
- GetPathAddToSel(str);
- if (!str.IsEmpty())
- {
- #ifdef USE_SEP_VEB
- str = SEPS_VEB + str + SEPS_VEB;
- #else
- str = SEPS_CMA + str + SEPS_CMA;
- #endif //#ifdef USE_SEP_VEB
- }
- str.MakeLower();
- if (kind == _T("4"))
- m_no2array.Add(str);
- else
- m_noarray.Add(str);
- }
- }
- else
- {
- for ( i = 0; i < sparray.GetSize(); i++)
- {
- kind = _T("4");//sparray.ElementAt (i).ElementAt (4);
- if (kind == _T("4"))
- {
- m_List3.InsertItem(list3pos, sparray.ElementAt(i).ElementAt(7)); // dindansp表autoid;
- 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)); // 选片时选中的相片名;
- m_List3.SetItemText(list3pos, 6, sparray.ElementAt(i).ElementAt(9)); // 商品备注;
- #endif
- list3pos++;
- }
- else
- {
- OutputDebugString(_T("\n 选片 #######################m_List2####################### \n"));
- m_List2.InsertItem(list2pos, sparray.ElementAt(i).ElementAt(7)); // dindansp表autoid;
- 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); // 获取no或no2字段中包含的相片名数量;
- GetPathAddToSel(str);
- if (!str.IsEmpty())
- {
- #ifdef USE_SEP_VEB
- str = SEPS_VEB + str + SEPS_VEB;
- #else
- str = SEPS_CMA + str + SEPS_CMA;
- #endif //#ifdef USE_SEP_VEB
- }
- if (kind == _T("4"))
- m_no2array.Add(str);
- else
- m_noarray.Add(str);
- }
- // 入册;
- CheckForAlbum();
- // 入底;
- CheckForDisk();
- }
- // g_List1array -> dindan表;
- 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())
- {
- #ifdef USE_SEP_VEB
- m_name = m_name1 + SEPS_VEB;
- #else
- m_name = m_name1 + SEPS_CMA;
- #endif //#ifdef USE_SEP_VEB
- }
- m_name += m_name2;
- #ifdef USE_SEP_VEB
- m_name.TrimRight(SEPS_VEB);
- #else
- m_name.TrimRight(SEPS_CMA);
- #endif //#ifdef USE_SEP_VEB
- 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_delphotos = g_List1array.ElementAt(0).ElementAt(53); // Jeff开始选片时,获取dindan表的字段delphotos.读取正常;
- if ( m_delphotos.GetAt(0) != SEPC_VEB || m_delphotos.GetAt(m_delphotos.GetLength() -1) != SEPC_VEB )
- {
- m_delphotos.TrimLeft(SEPC_VEB);
- m_delphotos.TrimRight(SEPC_VEB);
- m_delphotos = SEPS_VEB + m_delphotos + SEPS_VEB;
- }
- 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 = _T("");
- m_name2 = _T("");
- m_waiter3 = _T("");
- m_taoxizs = _T("");
- m_time5 = _T("");
- m_takezs = _T("");
- m_choosezs = _T("");
- m_money3 = "";
- m_bz3 = _T("");
- m_bz4 = _T("");
- UpdateData(false);
- }
- return 1;
- }
- void ChoosePhotoSkin2::OnClose()
- {
- /*
- if (m_bModify)
- {
- ShowMsg3 dlg;
- dlg.m_strMsg = _T("提醒, 选片修改未保存, 是否保存后再退出?");
- if(dlg.DoModal() == IDOK)
- OnButton4();
- }
- */
- CDialog::OnClose();
- }
- 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 (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();
- //更新绘制;
- DrawInterface();
- // LoadPhotos();
- }
- return 1;
- case VK_RETURN:
- OnDblclkList1();
- return 1;
- case VK_F4:
- if (atoi(g_cominfoarray.ElementAt(0).ElementAt(62)))
- {
- if (m_SelectCategory == INDX_SEL)
- 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_bGrowthTX = m_bGrowthTX;
- m_selphotownd2.m_seltxname = m_seltxname;
- m_selphotownd2.m_rc = m_rcarray.ElementAt(6);
- m_selphotownd2.Create(IDD_DLGShowSelPhoto2, this);
- }
- m_selphotownd2.ShowWindow(1);
- }
- return 1;
- case VK_F2: //缩略图
- if (atoi(g_cominfoarray.ElementAt(0).ElementAt(60)))
- {
- m_bHide = !m_bHide;
- LoadPhotos();
- }
- return 1;
- case VK_BACK: //返回上层
- {
- m_pCurrSelFolder = m_OpenFolder = NULL;
- if (m_SelectCategory == INDX_SEL)
- UpdateChooseZS();
- else if(m_SelectCategory == INDX_NOSEL)
- {
- m_sChooseFilter = _T("");
- UpdateChooseZS();
- GetNoSelPhoto();
- }
- LoadPhotos();
- }
- return 1;
- case VK_ESCAPE:
- {
- return TRUE;
- }
- break;
- }
- }
- else if(pMsg->message == WM_LBUTTONUP)
- {
- CDialog::PreTranslateMessage(pMsg);
- if(m_OpenFolder == NULL && m_vFolder.size() && m_SelectCategory != INDX_DEL)
- {
- printf("\t拖动相片\n");
- //选片模式;
- POSITION pos;
- pos = m_List1.GetFirstSelectedItemPosition();
- if (pos == NULL)
- return FALSE;
- int iItem = m_List1.GetDragSelIndex();
- if(iItem == -1)
- return FALSE;
- CStringArray *pArray = GetCurArray(m_SelectCategory);
- m_pCurrSelFolder = FindForderFromIndx(iItem);
- if(m_pCurrSelFolder && pArray)
- {
- //获取选中的相片;
- vector<CString> vMoveFile;
- CDWordArray* pDWArr = m_List1.GetDragIndexes();
- if(pDWArr)
- {
- for ( int i = pDWArr->GetSize() - 1; i > -1; i-- )
- {
- if( (*pDWArr)[i] < m_vFolder.size() )
- continue;
- vMoveFile.push_back(pArray->ElementAt((*pDWArr)[i] - m_vFolder.size()));
- pArray->RemoveAt((*pDWArr)[i] - m_vFolder.size());
- }
- }
-
- if(vMoveFile.size() > 0)
- {
- //移动选中的相片;
- if(MoveFileMainToSub(vMoveFile, m_pCurrSelFolder))
- {
- if ( m_SelectCategory != INDX_ALL && m_SelectCategory != INDX_DEL )
- {// 从全部里移除被移动到文件夹的相片;
- pArray = GetCurArray(INDX_ALL, NULL);
- vector<CString>::iterator iter = vMoveFile.begin();
- for ( ; iter != vMoveFile.end(); iter++ )
- {
- for ( int n = 0; n < pArray->GetSize(); n++ )
- {
- if ( iter->CompareNoCase(pArray->ElementAt(n)) == 0 )
- {
- pArray->RemoveAt(n);
- break;
- }
- }
- }
- }
- }
- }
- LoadPhotos();
- }
- }
- return TRUE;
- }
- return CDialog::PreTranslateMessage(pMsg);
- }
- void ChoosePhotoSkin2::OnRclickList1() // 右键List列表;
- {
- if (m_bRunning)
- return;
- CMenuXP *pPopup = NULL;
- POSITION pos;
- pos = m_List1.GetFirstSelectedItemPosition();
- if (pos == NULL)
- {
- // 新建/返回文件夹菜单;
- if(m_OpenFolder)
- ShowFolderMenu(IDM_RETURNMAINDIR, _T("返回上层"));
- else
- ShowFolderMenu(IDM_NEWFOLDER, _T("新建文件夹"));
- return;
- }
- int iItem = m_List1.GetNextSelectedItem(pos);
- printf(_T("\t选中第%d个项\n"),iItem);
-
- CString path = _T("");
- CStringArray* pArray = NULL;
- // 选片才对文件夹处理;
- if(m_OpenFolder == NULL)
- {
- int nsize = m_vFolder.size();
- if(iItem < nsize)
- {
- // 获取选中的文件夹图标;
- m_pCurrSelFolder = FindForderFromIndx(iItem);
- if(m_pCurrSelFolder)
- {
- // 显示删除文件夹菜单;
- vector<SMenuBtnData> vdata;
- vdata.push_back(SMenuBtnData(IDM_OPENFOLDER, _T("打开文件夹")));
- vdata.push_back(SMenuBtnData(IDM_DELFOLDER, _T("删除文件夹")));
- ShowFolderMenu(vdata);
- return;
- }
- }
- else
- iItem = iItem - nsize;
- pArray = GetCurArray(m_SelectCategory);
- }
- else
- pArray = GetCurArray(INDX_ALL, m_OpenFolder);
- path = pArray->ElementAt(iItem); //path//打印出相片完整路径名;
- printf("[%d]对应文件路径:\n \t%s\n", iItem + m_vFolder.size(), path);
- // 右键看设计模式;
- path = path.Right(path.GetLength() - path.ReverseFind('\\') - 1);
- path = path.Left(path.ReverseFind('.'));
- #ifdef USE_SEP_VEB
- path = SEPS_VEB + path + SEPS_VEB; //
- #else
- path = SEPS_CMA + path + SEPS_CMA; //
- #endif //#ifdef USE_SEP_VEB
- // TODO: Add your control notification handler code here
- // 1.创建菜单对象;
- 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;
-
- // m_List2有三列头:编号、商品名称、商品数量;
- CString scount = _T("");
- name = no = _T("");
- count = 0;
- for ( i = 0; i < m_List2.GetItemCount(); i++)
- {
- printf("ChoosePhotoSkin2::m_List2有记录\n");
- // name商品名称;
- 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));// 2.使用AppendODMenu2添加子菜单项;
- //绑定事件ID
- 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)
- {// 未选中;
- printf("\t商品:[%s],\n\t当前相片[%s]\n\t 关联相片:[%s]\n",name, path, no);
- pPopup->CheckMenuItem(IDM_MENUsp1 + i, MF_BYCOMMAND | MF_CHECKED);
- }
- else
- {// 选中;
- // 当单击中菜单时,与当前状态相反;
- }
- }
- pPopup->AppendODMenu2(0, new CMenuXPText(32794, _T("修改要求"), NULL));
- //获取当前鼠标位置;
- CPoint pt;
- ::GetCursorPos(&pt);
- // 3.使用TrackPopupMenu,正常弹出菜单;
- pPopup->TrackPopupMenu(TPM_RIGHTBUTTON, pt.x, pt.y, this, 0);
- delete pPopup;
- }
- void ChoosePhotoSkin2::OnRclickList1(NMHDR* pNMHDR, LRESULT* pResult)
- {
- if (m_showpichwd)
- return;
- OnRclickList1();
- *pResult = 0;
- }
- /************************************************************************/
- /*
- 函数: ShowFolderMenu
- 描述: 显示文件夹菜单;
- 参数:
- 返回: 1成功, 0失败
- 注意:
- */
- /************************************************************************/
- int ChoosePhotoSkin2::ShowFolderMenu(const int nID, const LPCTSTR pName)
- {
- if(pName == NULL)
- {
- MessageBox(_T("弹出菜单失败"));
- return 0;
- }
- CMenuXP *pPopup = new CMenuXP;
- pPopup->CYBUTTONMARGIN = 3; // 1.0.按钮范围0~3; 4个菜单;
- pPopup->CreatePopupMenu(); // 1.1.弹出式菜单;
- pPopup->SetMenuStyle(CMenuXP::STYLE_XP); // 1.2.弹出菜单样式;
- pPopup->AppendODMenu2(0, new CMenuXPText(nID, pName, NULL));
- //获取当前鼠标位置;
- CPoint pt;
- ::GetCursorPos(&pt);
- // 3.使用TrackPopupMenu,正常弹出菜单;
- pPopup->TrackPopupMenu(TPM_RIGHTBUTTON, pt.x, pt.y, this, 0);
- delete pPopup;
- return 1;
- }
- /************************************************************************/
- /*
- 函数: ShowFolderMenu
- 描述: 显示文件夹菜单;
- 参数:
- 返回: 1成功, 0失败
- 注意:
- */
- /************************************************************************/
- int ChoosePhotoSkin2::ShowFolderMenu(vector<SMenuBtnData>& vdata)
- {
- if(vdata.size() == 0)
- {
- MessageBox(_T("弹出菜单失败"));
- return 0;
- }
- CMenuXP *pPopup = new CMenuXP;
- pPopup->CYBUTTONMARGIN = 3; // 1.0.按钮范围0~3; 4个菜单;
- pPopup->CreatePopupMenu(); // 1.1.弹出式菜单;
- pPopup->SetMenuStyle(CMenuXP::STYLE_XP); // 1.2.弹出菜单样式;
- vector<SMenuBtnData>::iterator iter = vdata.begin();
- for(;iter != vdata.end();)
- {
- pPopup->AppendODMenu2(0, new CMenuXPText(iter->nID, iter->strBtnName, NULL));
- ++iter;
- }
- //获取当前鼠标位置
- CPoint pt;
- ::GetCursorPos(&pt);
- // 3.使用TrackPopupMenu,正常弹出菜单;
- pPopup->TrackPopupMenu(TPM_RIGHTBUTTON, pt.x, pt.y, this, 0);
- delete pPopup;
- return 1;
- }
- //
- /************************************************************************/
- /*
- 函数: OnCommandMenu
- 描述: 弹出菜单处理;
- 参数:
- UINT nID 事件ID
- 返回:
- 注意:
- */
- /************************************************************************/
- void ChoosePhotoSkin2::OnCommandMenu(UINT nID)
- {
- printf("\n\nChoosePhotoSkin2::OnCommandMenu#############################################:\n");
- if (32794 == nID)
- {
- //修改要求;
- POSITION pos;
- pos = m_List1.GetFirstSelectedItemPosition();
- if (pos == NULL)
- {
- return;
- }
- int iItem = m_List1.GetNextSelectedItem(pos);
- if(m_OpenFolder == NULL)
- iItem = iItem - m_vFolder.size();
- CStringArray *pArray = GetCurArray(m_SelectCategory);
- CString path = pArray->ElementAt(iItem);
- path = path.Right(path.GetLength() - path.ReverseFind('\\') - 1);
- path = path.Left(path.Find('.'));
- if (m_bz4.GetLength() > 4080)
- {
- AfxMessageBox(_T("备注太长,可在保存界面选中备注内容,按Delete键清除"));
- return;
- }
- UpdateData();
- CClientRequirement dlg;
- dlg.m_no = _T("当前照片:") + path;
- 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 = _T("");
- 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)
- {
- aa++;
- CStringArray* pArray = NULL;
- CString path = _T("");
- int iItem = m_List1.GetNextSelectedItem(pos);
- if(m_OpenFolder)
- pArray = GetCurArray(m_SelectCategory, m_OpenFolder);
- else
- {
- if(iItem >= m_vFolder.size())
- iItem = iItem - m_vFolder.size();
- else
- return;
- pArray = GetCurArray(m_SelectCategory);
- }
- if(pArray == NULL)
- break;
- path = pArray->ElementAt(iItem);
- path = path.Right(path.GetLength() - path.ReverseFind('\\') - 1);
- path = path.Left(path.ReverseFind('.'));
- #ifdef USE_SEP_VEB
- path = SEPS_VEB + path + SEPS_VEB;
- #else
- path = SEPS_CMA + path + SEPS_CMA;
- #endif //#ifdef USE_SEP_VEB
- 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(_T("编号太长,选择失败!"), MB_ICONSTOP);
- return;
- }
- else
- {
- bSel = 1;
- #ifdef USE_SEP_VEB
- no.TrimRight(SEPS_VEB);
- #else
- no.TrimRight(SEPS_CMA);
- #endif //#ifdef USE_SEP_VEB
- no += path;
- }
- #ifdef USE_SEP_VEB
- no.TrimLeft(SEPS_VEB);
- no.TrimRight(SEPS_VEB);
- #else
- no.TrimLeft(SEPS_CMA);
- no.TrimRight(SEPS_CMA);
- #endif //#ifdef USE_SEP_VEB
- m_List2.SetItemText(idpos, 4, no);
- printf("%s | %s ", path, bSel ? "选中" : "取消选中");
- if (no.IsEmpty())
- m_noarray.SetAt(idpos, no);
- else
- {
- #ifdef USE_SEP_VEB
- m_noarray.SetAt(idpos, SEPS_VEB + no + SEPS_VEB);
- #else
- m_noarray.SetAt(idpos, SEPS_CMA + no + SEPS_CMA);
- #endif //#ifdef USE_SEP_VEB
- }
- printf("%s %d:%s\n\n", m_List3.GetItemText(idpos, 2), idpos, m_noarray.ElementAt(idpos));
- }
- 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(_T("编号太长,选择失败!"), MB_ICONSTOP); return;
- }
- else
- {
- bSel = 1;
- #ifdef USE_SEP_VEB
- no.TrimRight(SEPS_VEB);
- #else
- no.TrimRight(SEPS_CMA);
- #endif //#ifdef USE_SEP_VEB
- no += path;
- }
- #ifdef USE_SEP_VEB
- no.TrimLeft(SEPS_VEB);
- no.TrimRight(SEPS_VEB);
- #else
- no.TrimLeft(SEPS_CMA);
- no.TrimRight(SEPS_CMA);
- #endif //#ifdef USE_SEP_VEB
- #ifdef LKAY_VERSION
- m_List3.SetItemText (idpos, 7, no);
- #else
- m_List3.SetItemText(idpos, 5, no);
- #endif //#ifdef LKAY_VERSION
- printf("%s | %s ", path, bSel ? "选中" : "取消选中");
- if (no.IsEmpty())
- m_no2array.SetAt(idpos, no);
- else
- {
- #ifdef USE_SEP_VEB
- m_no2array.SetAt(idpos, SEPS_VEB + no + SEPS_VEB);
- #else
- m_no2array.SetAt(idpos, SEPS_CMA + no + SEPS_CMA);
- #endif //#ifdef USE_SEP_VEB
- }
- printf("%s %d:%s\n\n", m_List3.GetItemText(idpos, 2), idpos, m_no2array.ElementAt(idpos));
- }
- m_bModify = 1;
- if (bSel == 0 && m_SelectCategory == INDX_SEL && IsSelPhoto(path) == 0)
- {// 取消选中;已选界面;
- temp.Format("%d", iItem);
- m_combo1.AddString(temp);
- continue;
- }
- else if (bSel == 1 && m_SelectCategory == INDX_NOSEL)
- {// 选中;未选界面;
- temp.Format("%d", iItem);
- m_combo1.AddString(temp);
- continue;
- }
- else if (bSel == 1 && m_SelectCategory == INDX_DEL)
- {// 选中;删除界面;
- temp.Format("%d", iItem);
- m_combo1.AddString(temp);
- continue;
- }
- else if (bSel == 0 && m_SelectCategory == INDX_INTOALBUM && IsSelAlbumPhoto(path) == 0)
- {// 取消选中;入册界面;
- temp.Format("%d", iItem);
- m_combo1.AddString(temp);
- continue;
- }
- else if (bSel == 0 && m_SelectCategory == INDX_ENTRYPHASSE && IsSelDiskPhoto(path) == 0)
- {// 取消选中;入底界面;
- temp.Format("%d", iItem);
- m_combo1.AddString(temp);
- continue;
- }
- /////////////////////////
- CString no;
- no = pArray->ElementAt(iItem);
- no = no.Right(no.GetLength() - no.ReverseFind('\\') - 1);
- no = no.Left(no.ReverseFind('.'));
- no += GetSelName(no);
- if(!m_OpenFolder)
- iItem = iItem + m_vFolder.size();
- m_List1.SetItemText(iItem, 0, no);
- printf("选中项:%d\n", iItem);
- }
- // 从m_combo1尾部开始导出;
- CArray<int, int>posarray;
- for (int i = m_combo1.GetCount() - 1; i >= 0; i--)
- {
- m_combo1.GetLBText(i, temp);
- posarray.Add(atoi(temp));
- }
- SortArray2(posarray);
- if (posarray.GetSize())
- {
- CStringArray* pArray = NULL;
- int folderNum = 0;
- if(m_OpenFolder)
- {
- pArray = GetCurArray(m_SelectCategory, m_OpenFolder);
- }
- else
- {
- folderNum = m_vFolder.size();
- pArray = GetCurArray(m_SelectCategory);
- }
- if (m_SelectCategory == INDX_SEL)
- {// 当前界面:已选;
- CStringArray* pNolSelArray = NULL;
- if(m_OpenFolder)
- pNolSelArray = GetCurArray(INDX_NOSEL, m_OpenFolder);
- else
- pNolSelArray = GetCurArray(INDX_NOSEL);
- for (int i = 0; i < posarray.GetSize(); i++)
- {
- // 从已选中移除取消选中的项;
- if ( m_List1.GetItemCount() <= posarray.ElementAt(i) + folderNum)
- printf("\t当前界面m_List1.GetItemCount个数少于选中个数,严重错误[越界]\n");
- printf("\t当前要删除的Item索引=%d\n", posarray.ElementAt(i) + folderNum);
- m_List1.DeleteItem(posarray.ElementAt(i) + folderNum);
- // 将取消选中的项添加到未选中;
- pNolSelArray->Add(pArray->ElementAt(posarray.ElementAt(i) - folderNum));
- // 移除取消选中的项;
- if ( pArray->GetSize() <= posarray.ElementAt(i) - folderNum)
- printf("\t当前界面pArray.GetSize个数少于选中个数,严重错误[越界]\n");
- pArray->RemoveAt(posarray.ElementAt(i) - folderNum); // 多选的状态下,如果不是从尾部开始RemoveAt可能会产生错误;
- }
- if (m_showpichwd)
- ::SendMessage(m_showpichwd, WM_CLOSE, 0, 0);
- }
- else if (m_SelectCategory == INDX_NOSEL)
- {// 当前界面:未选;
- for (int i = 0; i < posarray.GetSize(); i++)
- {
- // 从已选中移除取消选中的项;
- if ( m_List1.GetItemCount() <= posarray.ElementAt(i) + folderNum)
- printf("\t当前界面m_List1.GetItemCount个数少于选中个数,严重错误[越界]\n");
- printf("\t当前要删除的Item索引=%d\n", posarray.ElementAt(i) + folderNum);
- m_List1.DeleteItem(posarray.ElementAt(i) + folderNum);
- if ( pArray->GetSize() <= posarray.ElementAt(i) - folderNum)
- printf("\t当前界面pArray.GetSize个数少于选中个数,严重错误[越界]\n");
- pArray->RemoveAt(posarray.ElementAt(i) - folderNum);
- }
- if (m_showpichwd)
- ::SendMessage(m_showpichwd, WM_CLOSE, 0, 0);
- }
- else if (m_SelectCategory == INDX_DEL)
- {// 当前界面:删除;
- CString strDelNo = _T("");
- CStringArray* pAllArray = NULL;
- if(m_OpenFolder)
- pAllArray = GetCurArray(INDX_ALL, m_OpenFolder);
- else
- pAllArray = GetCurArray(INDX_ALL);
- for (int i = 0; i < posarray.GetSize(); i++)
- {
- if ( m_List1.GetItemCount() <= posarray.ElementAt(i) + folderNum)
- printf("\t当前界面m_List1.GetItemCount个数少于选中个数,严重错误[越界]\n");
- printf("\t当前要删除的Item索引=%d\n", posarray.ElementAt(i) + folderNum);
- // 获取要被删除的相片编号;
- strDelNo = SEPS_VEB + m_List1.GetItemText(posarray.ElementAt(i) + folderNum,0) + SEPS_VEB;
- if ( m_delphotos.Find(strDelNo) != -1 )
- {
- int nDelPos = m_delphotos.Find(strDelNo);
- m_delphotos.Delete(nDelPos, strDelNo.GetLength() - 1);
- printf("\t当前删除的相片编号:[%s] \n\t剩余删除列表:%s\n", strDelNo, m_delphotos);
- }
- else
- {
- printf("错误:要删除的相片编号[%s]未在删除列表中[%s]\n", strDelNo, m_delphotos);
- }
- m_List1.DeleteItem(posarray.ElementAt(i) + folderNum);
- pAllArray->Add(pArray->ElementAt(posarray.ElementAt(i)));
- if ( pArray->GetSize() <= posarray.ElementAt(i) - folderNum)
- printf("\t当前界面pArray.GetSize个数少于选中个数,严重错误[越界]\n");
- pArray->RemoveAt(posarray.ElementAt(i));
- }
- if (m_showpichwd)
- ::SendMessage(m_showpichwd, WM_CLOSE, 0, 0);
- }
- else if (m_SelectCategory == INDX_INTOALBUM)
- {// 当前界面:入册;
- for (int i = 0; i < posarray.GetSize(); i++)
- {
- if ( m_List1.GetItemCount() <= posarray.ElementAt(i) + folderNum)
- printf("\t当前界面m_List1.GetItemCount个数少于选中个数,严重错误[越界]\n");
- printf("\t当前要删除的Item索引=%d\n", posarray.ElementAt(i) + folderNum);
-
- m_List1.DeleteItem(posarray.ElementAt(i) + folderNum);
- if ( pArray->GetSize() <= posarray.ElementAt(i) - folderNum)
- printf("\t当前界面pArray.GetSize个数少于选中个数,严重错误[越界]\n");
- pArray->RemoveAt(posarray.ElementAt(i) - folderNum);
- }
- if (m_showpichwd)
- ::SendMessage(m_showpichwd, WM_CLOSE, 0, 0);
- }
- else if (m_SelectCategory == INDX_ENTRYPHASSE)
- {// 当前界面:入底;
- for (int i = 0; i < posarray.GetSize(); i++)
- {
- if ( m_List1.GetItemCount() <= posarray.ElementAt(i) + folderNum)
- printf("\t当前界面m_List1.GetItemCount个数少于选中个数,严重错误[越界]\n");
- printf("\t当前要删除的Item索引=%d\n", posarray.ElementAt(i) + folderNum);
- m_List1.DeleteItem(posarray.ElementAt(i) + folderNum);
- if ( pArray->GetSize() <= posarray.ElementAt(i) - folderNum)
- printf("\t当前界面pArray.GetSize个数少于选中个数,严重错误[越界]\n");
- pArray->RemoveAt(posarray.ElementAt(i) - folderNum);
- }
- if (m_showpichwd)
- ::SendMessage(m_showpichwd, WM_CLOSE, 0, 0);
- }
- }
- CString strFile = m_strOrderNumber + _T(".dat");
- Save(g_mainpath, strFile);
- DrawInterface();
- if (m_showpichwd)
- ::SendMessage(m_showpichwd, WM_USER + 200, 0, 0);
- }
- VOID ChoosePhotoSkin2::OnNewFolder()
- {
- //新建文件夹
- CNewFolderDlg dlg;
- dlg.m_pVFolder = &m_vFolder;
- if(dlg.DoModal() != IDOK)
- return ;
- m_bModify = 1;
- AddFolder(dlg.m_strFolderName);
- LoadPhotos();
- return ;
- }
- VOID ChoosePhotoSkin2::OnDelFolder()
- {
- if(AfxMessageBox(_T("是否删除选中的文件夹!"), MB_YESNO | MB_ICONINFORMATION) == IDNO)
- return ;
- //删除文件夹
- if(m_pCurrSelFolder)
- {
- //相片由子移到主
- MoveFileSubToMain(m_pCurrSelFolder);
- DelFolderFromName(m_pCurrSelFolder->strName);
- m_pCurrSelFolder = NULL;
- LoadPhotos();
- }
- return;
- }
- VOID ChoosePhotoSkin2::OnOpenFolder()
- {
- printf("IDM_OPENFOLDER\n");
- //打开文件夹
- m_OpenFolder = m_pCurrSelFolder;
- if(m_SelectCategory == INDX_INTOALBUM)
- GetAlbumPhoto();
- else if(m_SelectCategory == INDX_ENTRYPHASSE)
- GetDiskPhoto();
- LoadPhotos();
- }
- VOID ChoosePhotoSkin2::OnReturnMainDir()
- {
- //返回上层
- m_pCurrSelFolder = m_OpenFolder = NULL;
- if (m_SelectCategory == INDX_SEL)
- UpdateChooseZS();
- else if(m_SelectCategory == INDX_NOSEL)
- {
- m_sChooseFilter = _T("");
- UpdateChooseZS();
- GetNoSelPhoto();
- }
- LoadPhotos();
- }
- long ChoosePhotoSkin2::UpdateTakeZS(WPARAM inWParam, LPARAM inLParam)
- {
- if (m_SelectCategory == INDX_ALL && m_List1.GetItemCount() > atoi(m_takezs))
- {
- UpdateData();
- m_takezs.Format("%d", m_List1.GetItemCount());
- UpdateData(false);
- }
- //绘制
- DrawInterface();
- return 1;
- }
- /************************************************************************/
- /*
- 函数: UpdateChooseZS
- 描述: 更新选中相片
- 参数:
- 返回:
- 注意:
- */
- /************************************************************************/
- void ChoosePhotoSkin2::UpdateChooseZS()
- {
- int i = 0;
- CString str = _T("");
- CStringArray* pSelArr = NULL;
- CStringArray* pAllArr = NULL;
- if(m_OpenFolder)
- pSelArr = GetCurArray(INDX_SEL, m_OpenFolder);
- else
- pSelArr = GetCurArray(INDX_SEL);
- if(m_OpenFolder)
- pAllArr = GetCurArray(INDX_ALL, m_OpenFolder);
- else
- pAllArr = GetCurArray(INDX_ALL);
- pSelArr->RemoveAll();
- if (m_sChooseFilter != _T("") && m_sChooseFilter != _T("全部"))
- {
- for ( i = 0; i < m_List3.GetItemCount(); i++)
- {
- if (m_List3.GetItemText(i, 2) != m_sChooseFilter)
- continue;
- str = m_no2array.ElementAt(i);
- GetPathAddToSel(pSelArr, str, pAllArr);
- }
- return;
- }
- for ( i = 0; i < m_noarray.GetSize(); i++)
- {
- str = m_noarray.ElementAt(i);
- GetPathAddToSel(pSelArr, str, pAllArr);
- }
- for (i = 0; i < m_no2array.GetSize(); i++)
- {
- str = m_no2array.ElementAt(i);
- GetPathAddToSel(pSelArr, str, pAllArr);
- }
- }
- // 保存按钮;
- void ChoosePhotoSkin2::OnButton4()// 保存按钮;
- {
- UpdateData();
- if (m_SelectCategory != INDX_SEL)
- CalChooseZS(&m_SelPhotoPath, &m_AllPhotoPath);
- CString zs = m_taoxizs;
- int pos = zs.Find("\\");
- if (pos != -1)
- zs = zs.Left(pos);
- CStringArray* parr = NULL;
- CStringArray* pAllArr = NULL;
- int nSelCount = 0;
- vector<SFolderInfo*>::iterator iter = m_vFolder.begin();
- while(iter != m_vFolder.end())
- {
- SFolderInfo* p = (*iter);
- if(p != NULL)
- {
- pAllArr = GetCurArray(INDX_ALL, p);
- parr = GetCurArray(INDX_SEL, p);
- CalChooseZS(parr, pAllArr);
- nSelCount += parr->GetSize();
- }
- ++iter;
- }
- nSelCount += m_SelPhotoPath.GetSize();
- m_choosezs.Format("%d", max(0, nSelCount - 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 = _T("");
- savepath.Format("%s\\%s.dat", g_mainpath, m_strOrderNumber);
- ::DeleteFile(savepath); // 删除*.dat文件;
- }
- 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_SelectCategory == INDX_SEL)
- {// 当前界面:选中界面;
- AfxMessageBox(_T("选中照片不能删除, 请先取消选中状态!"), MB_ICONINFORMATION);
- return 0;
- }
- else if (m_SelectCategory == INDX_DEL)
- {// 当前界面:删除;
- return 0;
- }
- POSITION pos;
- pos = m_List1.GetFirstSelectedItemPosition();
- if (pos == NULL)
- return 0;
- if (m_bRunning)
- return 0;
- CStringArray* pArray = NULL;
- CString strDelPhotoName = _T("");
- CString strSelPhotoPath = _T("");
- int nFolderNum = m_vFolder.size();
- int iItem = m_List1.GetNextSelectedItem(pos);
- int nItemIdx = iItem;
- //选片模式;
- if(m_OpenFolder == NULL)
- {
- pArray = GetCurArray(m_SelectCategory);
- if(nItemIdx < m_vFolder.size())
- {
- //删除选取文件夹;
- if(AfxMessageBox(_T("是否删除选中的文件夹!"), MB_YESNO | MB_ICONINFORMATION) == IDNO)
- return 0;
- m_pCurrSelFolder = FindForderFromIndx(iItem);
- if(m_pCurrSelFolder)
- {
- m_bModify = 1;
- //相片由子移到主;
- MoveFileSubToMain(m_pCurrSelFolder);
- DelFolderFromName(m_pCurrSelFolder->strName);
- m_pCurrSelFolder = NULL;
- LoadPhotos();
- }
- return 0;
- }
- else
- nItemIdx = nItemIdx - m_vFolder.size();
- }
- else
- pArray = GetCurArray(INDX_ALL, m_OpenFolder);
- strSelPhotoPath = pArray->ElementAt(nItemIdx);
- strDelPhotoName = strSelPhotoPath;
- if(strDelPhotoName == _T("") || pArray == NULL)
- return 0;
- strDelPhotoName = strDelPhotoName.Right(strDelPhotoName.GetLength() - strDelPhotoName.ReverseFind('\\') - 1);
- strDelPhotoName = strDelPhotoName.Left(strDelPhotoName.Find('.'));
- if (IsSelPhoto(SEPS_VEB + strDelPhotoName + SEPS_VEB))
- {
- AfxMessageBox(_T("选中的照片不能删除, 请先取消选中状态!"), MB_ICONINFORMATION);
- return 0;
- }
- if (AfxMessageBox(_T("是否删除此照片?"), MB_YESNO | MB_ICONINFORMATION) != IDYES)
- return 0;
- printf("\t要删除的相片编号:%s\n", strDelPhotoName);
- // 将要删除的相片添加到删除数组里;
- #if JEFF_TEST_ON
- if(PathFileExists(strSelPhotoPath))
- m_DelPhotoPath.Add(strSelPhotoPath);
- #else
- m_DelPhotoPath.Add(strSelPhotoPath);
- #endif //#if JEFF_TEST_ON
- if ( m_delphotos.Find(SEPS_VEB + strDelPhotoName + SEPS_VEB) != -1)
- {
- printf("\t错误,相片编号:%s 已在删除列表中\n", strDelPhotoName);
- }
- else
- {// 将要删除的相片编号添加进去;
- m_delphotos.TrimRight(SEPS_VEB);
- m_delphotos += SEPS_VEB + strDelPhotoName + SEPS_VEB;
- }
- for(int i = 0; i < pArray->GetSize(); i++)
- {
- //字符串比较相同=0;
- if(strSelPhotoPath.CollateNoCase(pArray->ElementAt(i)) == 0)
- {
- pArray->RemoveAt(i);
- m_List1.DeleteItem(iItem);
- break;
- }
- }
- if(m_SelectCategory == INDX_NOSEL)
- DelPhotoFromName(m_AllPhotoPath, strDelPhotoName);
- m_bModify = 1;
- //设置默认选项;
- if(iItem >= pArray->GetSize())
- iItem = 0;
- m_List1.SetItemState(iItem, LVIS_SELECTED, LVIS_SELECTED);
- return 1;
- }
- 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();
- }
- }
- /************************************************************************/
- /*
- 函数: LoadPhotos
- 描述: 加载图片
- 参数:
- 返回:
- */
- /************************************************************************/
- void ChoosePhotoSkin2::LoadPhotos()
- {
- TerminateThread();
- //清除资源的路径;
- ClearResData();
- DWORD tm1(0), tm2(0);
- tm1 = GetTickCount();
- //选片;
- CStringArray *pArray = NULL;
- if(!m_OpenFolder)
- {//在主目录;
- //添加文件夹名;
- vector<SFolderInfo*>::iterator iter = m_vFolder.begin();
- for(;iter != m_vFolder.end();)
- {
- SFolderInfo* p = (*iter);
- if(p != NULL)
- {
- SResData* pRes = new SResData();
- pRes->nType = (int)TYPE_FOLDER;
- //转为小写;
- p->strName.MakeLower();
- pRes->strName = p->strName;
- m_vResData.push_back(pRes);
- }
- ++iter;
- }
- pArray = GetCurArray(m_SelectCategory);
- }
- else
- pArray = GetCurArray(m_SelectCategory, m_OpenFolder);
- if(pArray == NULL)
- return;
- for (int i = 0; i < pArray->GetSize(); i++)
- {
- CString filePath = pArray->ElementAt(i);
- if(filePath == _T(""))
- continue;
- SResData* pRes = new SResData();
- pRes->nType = (int)TYPE_ICON;
-
- //转为小写;
- filePath.MakeLower();
- pRes->strFilePath = filePath;
- m_vResData.push_back(pRes);
- }
- tm2 = GetTickCount();
- printf(_T("绘制图片的准备时间:%dms\n"), (tm2-tm1));
- //创建绘画线程LoadThumbNail3;
- LoadThumbImages();
- }
- /************************************************************************/
- /*
- 函数: GetNoSelPhoto
- 描述: 未选中的相片
- 参数:
- 返回:
- 注意:
- */
- /************************************************************************/
- void ChoosePhotoSkin2::GetNoSelPhoto()
- {
- CStringArray* pNoSelArr = NULL;
- CStringArray* pAllArr = NULL;
- CStringArray* pSelArr = NULL;
- if(m_OpenFolder)
- {
- pNoSelArr = GetCurArray(INDX_NOSEL, m_OpenFolder);
- pAllArr = GetCurArray(INDX_ALL, m_OpenFolder);
- pSelArr = GetCurArray(INDX_SEL, m_OpenFolder);
- }
- else
- {
- pNoSelArr = GetCurArray(INDX_NOSEL);
- pAllArr = GetCurArray(INDX_ALL);
- pSelArr = GetCurArray(INDX_SEL);
- }
- if(pNoSelArr == NULL || pAllArr == NULL || pSelArr == NULL)
- return;
- pNoSelArr->RemoveAll();
- CString str1(_T("")), str2(_T(""));
- for (int i = 0; i < pAllArr->GetSize(); i++)
- {
- BOOL bFind = 0;
- for (int j = 0; j < pSelArr->GetSize(); j++)
- {
- str1 = pAllArr->ElementAt(i);
- str2 = pSelArr->ElementAt(j);
- if (str1.CollateNoCase(str2) == 0)
- {
- bFind = 1;
- break;
- }
- }
- if (bFind == 0)
- pNoSelArr->Add(pAllArr->ElementAt(i));
- }
- }
- /************************************************************************/
- /*
- 函数: OnSelPhoto
- 描述: 查看选中相片
- 参数:
- 返回:
- 注意:
- */
- /************************************************************************/
- void ChoosePhotoSkin2::OnSelPhoto()
- {
- ProductChooseFilter dlg;
- CString name = _T("");
- 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);
- }
- if(dlg.DoModal() == IDCANCEL)
- {
- m_SelectCategory = INDX_ALL;
- return;
- }
- m_sChooseFilter = dlg.m_sChooseFilter;
- UpdateChooseZS();
- }
- /************************************************************************/
- /*
- 函数: GetCurArray
- 描述: 获取要查看的数据
- 参数:
- const int nIndx 选中数据索引
- SFolderInfo* m_pForder 文件夹
- 返回:
- 注意:
- */
- /************************************************************************/
- CStringArray* ChoosePhotoSkin2::GetCurArray(const int nIndx, SFolderInfo* m_pForder/* = NULL*/)
- {
- CStringArray* pArray = NULL;
- if(m_pForder)
- {
- switch (nIndx)
- {
- case INDX_ALL: //全部;
- pArray = &m_pForder->AllPhotoPath;
- break;
- case INDX_SEL: //选中;
- pArray = &m_pForder->SelPhotoPath;
- break;
- case INDX_NOSEL: //未选;
- pArray = &m_pForder->NoSelPhotoPath;
- break;
- case INDX_DEL: //删除;
- pArray = &m_pForder->DelPhotoPath;
- break;
- case INDX_INTOALBUM: //入册;
- pArray = &m_pForder->IntoAlbumPath;
- break;
- case INDX_ENTRYPHASSE: //入底;
- pArray = &m_pForder->EntryPhasepath;
- break;
- }
- return pArray;
- }
- switch (nIndx)
- {
- case INDX_ALL: //全部;
- pArray = &m_AllPhotoPath;
- break;
- case INDX_SEL: //选中;
- pArray = &m_SelPhotoPath;
- break;
- case INDX_NOSEL: //未选;
- pArray = &m_NoSelPhotoPath;
- break;
- case INDX_DEL: //删除;
- pArray = &m_DelPhotoPath;
- break;
- case INDX_INTOALBUM: //入册;
- pArray = &m_IntoAlbumPath;
- break;
- case INDX_ENTRYPHASSE: //入底;
- pArray = &m_EntryPhasepath;
- break;
- }
- return pArray;
- }
- // path如:"|004|"
- BOOL ChoosePhotoSkin2::IsSelAlbumPhoto(CString path)
- {
- CString photosno;
- for (int i = 0; i < m_List3.GetItemCount(); i++)
- {
- if (m_List3.GetItemText(i, 2) != _T("入册"))
- continue;
- photosno = m_no2array.ElementAt(i);
- break;
- }
- if (photosno.Find(path) != -1)
- {
- return 1;
- }
- return 0;
- }
- // path 如:"|004|"
- BOOL ChoosePhotoSkin2::IsSelDiskPhoto(CString path)
- {
- CString photosno;
- for (int i = 0; i < m_List3.GetItemCount(); i++)
- {
- if (m_List3.GetItemText(i, 2) != _T("入底"))
- continue;
- photosno = m_no2array.ElementAt(i);
- break;
- }
- if (photosno.Find(path) != -1)
- {
- return 1;
- }
- return 0;
- }
- /************************************************************************/
- /*
- 函数: SortArray
- 描述: 按F4乱序或排序
- 参数:
- 返回:
- */
- /************************************************************************/
- void ChoosePhotoSkin2::SortArray()
- {
- int i = 0;
- int j = 0;
- m_bSort = !m_bSort;
- CStringArray *pArray[6] = { &m_AllPhotoPath, &m_SelPhotoPath, &m_NoSelPhotoPath, &m_DelPhotoPath, &m_IntoAlbumPath, &m_EntryPhasepath };
- if (m_bSort == 0)
- {
- for ( 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
- { // 使用CCombobox的Sort来排序;
- for ( i = 0; i < 6; i++)
- {
- m_combo1.ResetContent();
- CString Temp;
- 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();
- //清除资源的路径;
- ClearResData();
- CStringArray *pArr = NULL;
- //选片;
- if(!m_OpenFolder)
- {//在主目录;
- //添加文件夹名;
- vector<SFolderInfo*>::iterator iter = m_vFolder.begin();
- for(;iter != m_vFolder.end();)
- {
- SFolderInfo* p = (*iter);
- if(p != NULL)
- {
- SResData* pRes = new SResData();
- pRes->nType = (int)TYPE_FOLDER;
- //转为小写;
- p->strName.MakeLower();
- pRes->strName = p->strName;
- m_vResData.push_back(pRes);
- }
- ++iter;
- }
- pArr = GetCurArray(m_SelectCategory);
- }
- else
- pArr = GetCurArray(INDX_ALL, m_OpenFolder);
- if(pArr == NULL)
- return;
- for ( i = 0; i < pArr->GetSize(); i++)
- {
- SResData* pRes = new SResData();
- pRes->nType = (int)TYPE_ICON;
- CString filePath = pArr->ElementAt(i);
- //转为小写;
- filePath.MakeLower();
- pRes->strFilePath = filePath;
- m_vResData.push_back(pRes);
- }
- //创建绘画线程LoadThumbNail3;
- LoadThumbImages();
- }
- /************************************************************************/
- /*
- 函数: CheckForDisk
- 描述: 检查入底
- 参数:
- 返回:
- */
- /************************************************************************/
- void ChoosePhotoSkin2::CheckForDisk()
- {
- int i = 0;
- for ( i = 0; i < m_List2.GetItemCount(); i++)
- {
- if (_T("入底") == m_List2.GetItemText(i, 2))
- return;
- }
- for (i = 0; i < m_List3.GetItemCount(); i++)
- {
- if (_T("入底") == m_List3.GetItemText(i, 2))
- return;
- }
- i = m_List3.GetItemCount();
- m_List3.InsertItem(i, _T(""));
- m_List3.SetItemText(i, 2, _T("入底"));
- m_no2array.Add(_T(""));
- }
- /************************************************************************/
- /*
- 函数: CheckForAlbum
- 描述: 检查入册
- 参数:
- 返回:
- */
- /************************************************************************/
- void ChoosePhotoSkin2::CheckForAlbum()
- {
- int i = 0;
- for (i = 0; i < m_List2.GetItemCount(); i++)
- {
- if (_T("入册") == m_List2.GetItemText(i, 2))
- return;
- }
- for (i = 0; i < m_List3.GetItemCount(); i++)
- {
- if (_T("入册") == m_List3.GetItemText(i, 2))
- return;
- }
- i = m_List3.GetItemCount();
- m_List3.InsertItem(i, _T(""));
- m_List3.SetItemText(i, 2, _T("入册"));
- m_no2array.Add(_T(""));
- }
- /*-------------------------------------------------------
- 函数名: DrawInterface
- 描述: 绘制界面
- 参数:
- 返回值:
- -------------------------------------------------------*/
- void ChoosePhotoSkin2::DrawInterface()
- {
- CRect rc(0, 0, 0, 0), rt(0, 0, 0, 0);
- ((MyBmpButton2*)m_picarray.ElementAt(3))->GetWindowRect(rc);
- ScreenToClient(rc);
- int nH = rc.bottom - rc.top;
- rc.right -= (rc.left + 100);
- rc.left = 5;
- rc.top += 10;
- rc.right += 220;
- rc.bottom = rc.top + nH - 10;
- rt.CopyRect(&rc);
- 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 = _T("");
- if(m_OpenFolder == NULL && m_List1.GetItemCount() >= m_vFolder.size())
- str.Format(_T("张数:%d"), m_List1.GetItemCount() - m_vFolder.size());
- else
- str.Format(_T("张数:%d"), m_List1.GetItemCount());
- //显示文件夹名
- str += _T(" 主目录");
- if(m_OpenFolder)
- str += _T(">") + m_OpenFolder->strName;
- int leng = GetLengthEx(str);
- BSTR bstr = str.AllocSysString();
- Gdiplus::Font* pFont = new Gdiplus::Font(L"黑体", 11);
- graph.SetTextRenderingHint(TextRenderingHintAntiAlias);
- graph.DrawString(
- bstr,
- leng,
- pFont,
- layoutRect,
- &format,
- Brush);
- SysFreeString(bstr);
-
- delete Brush;
- delete pFont;
- ReleaseDC(pDC);
- }
- CString ChoosePhotoSkin2::GetZSInfo(int iItem)
- {
- if (m_SelectCategory != INDX_SEL)
- CalChooseZS(GetCurArray(INDX_SEL), GetCurArray(INDX_ALL));
- CString str = _T("");
- CString scount = m_List1.GetItemText(iItem, 0);
- int ncount = 0;
- int npos = scount.Find(_T("\r\n"));
- while (npos != -1)
- {
- ncount++;
- scount = scount.Right(scount.GetLength() - npos - 2);
- npos = scount.Find(_T("\r\n"));
- }
- CString zs = m_taoxizs;
- int pos = zs.Find("\\");
- if (pos != -1)
- zs = zs.Left(pos);
- CStringArray* pSelPhotoPath = GetCurArray(INDX_SEL);
- CStringArray* pAllPhotoPath = GetCurArray(INDX_ALL);
- int nNoSelCount = GetNoSelPhotoCount(pAllPhotoPath, pSelPhotoPath);
- int nSelCount = pSelPhotoPath->GetSize();
- str.Format(_T("选中次数:%d 已选/应选:%d/%d\r\n加选:%d+ 未选/剩余:%d/%d"), ncount, nSelCount, atoi(zs), max(0, nSelCount - atoi(zs)), max(0, atoi(zs) - nSelCount), nNoSelCount);
- return str;
- }
- /************************************************************************/
- /*
- 函数: GetPathAddToSel
- 描述: 获取路径添加到选中相片
- 参数:
- strName:dindansp表中no或no2字段值;相片名间使用逗号分隔;
- 返回: 1成功,0失败
- */
- /************************************************************************/
- int ChoosePhotoSkin2::GetPathAddToSel(const CString& strName)
- {
- if(strName == _T(""))
- return 0;
- CStringArray* pSelArr = NULL;
- CStringArray* pAllArr = NULL;
- if(m_OpenFolder != NULL)
- {
- pSelArr = GetCurArray(INDX_SEL, m_OpenFolder);
- pAllArr = GetCurArray(INDX_ALL, m_OpenFolder);
- }
- else
- {
- pSelArr = GetCurArray(INDX_SEL);
- pAllArr = GetCurArray(INDX_ALL);
- }
- GetPathAddToSel(pSelArr, strName, pAllArr);
- return 1;
- }
- /************************************************************************/
- /*
- 函数: GetPathAddToSel
- 描述: 获取路径添加到选中相片
- 参数:
- CStringArray* pSelArr
- const CString& str
- 返回: 1成功,0失败
- */
- /************************************************************************/
- int ChoosePhotoSkin2::GetPathAddToSel(CStringArray* pSelArr, const CString& strName, CStringArray* pAllArr)
- {
- return ChoosePhotoBase::GetPathAddToSel(pSelArr, strName, pAllArr);
- }
- /************************************************************************/
- /*
- 函数: GetAlbumPhoto
- 描述: 查看入册相片
- 参数:
- 返回:
- */
- /************************************************************************/
- void ChoosePhotoSkin2::GetAlbumPhoto()
- {
- if (m_SelectCategory == INDX_INTOALBUM && !m_OpenFolder)
- return;
- m_SelectCategory = INDX_INTOALBUM;
- CStringArray* pArr = NULL;
- if(m_OpenFolder)
- pArr = GetCurArray(m_SelectCategory, m_OpenFolder);
- else
- pArr = GetCurArray(m_SelectCategory);
- pArr->RemoveAll();
- CString photosName = _T("");
- int i = 0;
- for (i= 0; i < m_List3.GetItemCount(); i++)
- {
- if (m_List3.GetItemText(i, 2) != _T("入册"))
- continue;
- photosName = m_no2array.ElementAt(i);
- break;
- }
- CStringArray* pAllArry = NULL;
- if(m_OpenFolder != NULL)
- pAllArry = GetCurArray(INDX_ALL, m_OpenFolder);
- else
- pAllArry = GetCurArray(INDX_ALL);
- //将入册的相片名
- #ifdef USE_SEP_VEB
- photosName = SEPS_VEB + photosName + SEPS_VEB;
- #else
- photosName = SEPS_CMA + photosName + SEPS_CMA;
- #endif //#ifdef USE_SEP_VEB
- for (i = pAllArry->GetSize() - 1; i >= 0; i--)
- {
- CString strName = _T("");
- strName = pAllArry->ElementAt(i);
- strName = strName.Right(strName.GetLength() - strName.ReverseFind('\\') - 1);
- strName = strName.Left(strName.Find('.'));
- #ifdef USE_SEP_VEB
- strName = SEPS_VEB + strName + SEPS_VEB;
- #else
- strName = SEPS_CMA + strName + SEPS_CMA;
- #endif //#ifdef USE_SEP_VEB
- if (photosName.Find(strName) != -1)
- {
- strName = pAllArry->ElementAt(i);
- pArr->Add(strName);
- }
- }
- }
- /************************************************************************/
- /*
- 函数: GetDiskPhoto
- 描述: 查看入底相片
- 参数:
- 返回:
- */
- /************************************************************************/
- void ChoosePhotoSkin2::GetDiskPhoto()
- {
- if (m_SelectCategory == INDX_ENTRYPHASSE && !m_OpenFolder)
- return;
- m_SelectCategory = INDX_ENTRYPHASSE;
- CStringArray* pArr = NULL;
- if(m_OpenFolder)
- pArr = GetCurArray(m_SelectCategory, m_OpenFolder);
- else
- pArr = GetCurArray(m_SelectCategory);
- int i = 0;
- pArr->RemoveAll();
- CString photosName = _T("");
- for ( i = 0; i < m_List3.GetItemCount(); i++)
- {
- if (m_List3.GetItemText(i, 2) != _T("入底"))
- continue;
- photosName = m_no2array.ElementAt(i);
- break;
- }
- CStringArray* pAllArry = NULL;
- if(m_OpenFolder != NULL)
- pAllArry = GetCurArray(INDX_ALL, m_OpenFolder);
- else
- pAllArry = GetCurArray(INDX_ALL);
- #ifdef USE_SEP_VEB
- photosName = SEPS_VEB + photosName + SEPS_VEB;
- #else
- photosName = SEPS_CMA + photosName + SEPS_CMA;
- #endif //#ifdef USE_SEP_VEB
- for (i = pAllArry->GetSize() - 1; i >= 0; i--)
- {
- CString strName = _T("");
- strName = pAllArry->ElementAt(i);
- strName = strName.Right(strName.GetLength() - strName.ReverseFind('\\') - 1);
- strName = strName.Left(strName.Find('.'));
- #ifdef USE_SEP_VEB
- strName = SEPS_VEB + strName + SEPS_VEB;
- #else
- strName = SEPS_CMA + strName + SEPS_CMA;
- #endif //#ifdef USE_SEP_VEB
- if (photosName.Find(strName) != -1)
- {
- strName = pAllArry->ElementAt(i);
- pArr->Add(strName);
- }
- }
- }
- /************************************************************************/
- /*
- 函数名: ReLoad
- 描述: 重新加载数据
- 参数:
- 返回值:
- */
- /************************************************************************/
- BOOL ChoosePhotoSkin2::ReLoad()
- {
- return GetData();
- }
- /************************************************************************/
- /*
- 函数: DrawImageWork
- 描述: 绘制工作
- 参数:
- 返回:
- */
- /************************************************************************/
- void ChoosePhotoSkin2::DrawImageWork()
- {
- CListCtrl* ListCtrl = &m_List1;
- CImageList* pImgList = &m_ImageListThumb;
- try
- {
- // 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(m_vResData.size());
- // Set redraw to FALSE to avoid flickering during adding new items
- ListCtrl->SetRedraw(FALSE);
- //添加列表项名;
- AddListItemName(ListCtrl);
- //设置重绘并刷新;
- ListCtrl->SetRedraw(TRUE);
- ListCtrl->Invalidate();
- //绘制图标;
- DrawImage(ListCtrl, pImgList);
- m_bRunning = false;
- m_bTerminate = false;
- PostMessage(WM_USER + 200, 0, 0);
- return;
- }
- catch (...)
- {
- ListCtrl->Invalidate();
- m_bRunning = false;
- m_bTerminate = false;
- PostMessage(WM_USER + 200, 0, 0);
- }
- }
- /************************************************************************/
- /*
- 函数: AddListItemName
- 描述: 添加列表项名
- 参数:
- 返回: 1成功,0失败
- */
- /************************************************************************/
- int ChoosePhotoSkin2::AddListItemName(CListCtrl* pListCtrl)
- {
- if(pListCtrl == NULL)
- return 0;
- int nIndex = 0;
- CString str(_T("")), spath(_T(""));
- //添加文件名;
- vector<SResData*>::iterator iter;
- for(iter = m_vResData.begin(); iter != m_vResData.end() && m_bTerminate != true; iter++, nIndex++)
- {
- SResData* pRes = (*iter);
- if(pRes == NULL)
- continue;
- switch(pRes->nType)
- {
- case TYPE_ICON: //相片图标;
- {
- str = pRes->strFilePath;
- str = str.Right(str.GetLength() - str.ReverseFind('\\') - 1);
- str = str.Left(str.Find('.'));
- //获取商品名如:004\r\n入册\r\n入底;
- str += GetSelName(str);
- }
- break;
- case TYPE_FOLDER: //文件夹;
- str = pRes->strName;
- break;
- }
- pListCtrl->InsertItem(nIndex, str, nIndex);
- }
- return 1;
- }
- /************************************************************************/
- /*
- 函数: DrawImage
- 描述: 绘制
- 参数:
- 返回:
- */
- /************************************************************************/
- void ChoosePhotoSkin2::DrawImage(CListCtrl* pListCtrl, CImageList* pImgList)
- {
- if(pListCtrl == NULL)
- return;
- int nIndex = 0;
- Image* pHideImg = NULL; //相片图标;
- Image* pFolderImg = NULL; //文件夹;
- CString str(_T("")), spath(_T(""));
- vector<SResData*>::iterator iter;
- for (iter = m_vResData.begin(); iter != m_vResData.end() && m_bTerminate != true; iter++, nIndex++)
- {
- // Load Image File
- Image *image = NULL;
- Bitmap *pBmp = NULL;
- SResData* pRes = (*iter);
- if(pRes == NULL)
- continue;
- BOOL bNullimg = FALSE;
- //加载相片图标res\未标题-1.jpg;
- switch(pRes->nType)
- {
- case TYPE_ICON: //相片图标;
- {
- if(m_bHide && pHideImg == NULL)
- pHideImg = m_pHideImg;
- //是否要重新加载资源;
- if(pHideImg == NULL)
- {
- ReLoadImageFromRes(&image, pRes->strFilePath, bNullimg);
- if(image == NULL)
- continue;
- }
- else
- image = pHideImg;
- }
- break;
- case TYPE_FOLDER: //文件夹;
- {
- if(pFolderImg == NULL)
- pFolderImg = m_pFolderImg;
- if(pFolderImg)
- image = pFolderImg;
- }
- break;
- }
- //创建bitmap使用颜色填充区域;
- SolidBrush whitebrush(Color(255, 255, 255, 255));
- 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);
- // 缩放图片符合画布大小;
- Rect desRect(0, 0, 0, 0);
- ZoomImage(image, desRect);
-
- // 绘制图标res\未标题-1.jpg;
- Graphics graph(pBmp);
- graph.DrawImage(image, desRect, 0, 0, image->GetWidth(), image->GetHeight(), UnitPixel);
- // 将图片替换bitmap添加到图标列表;
- CBitmap bitmap;
- HBITMAP hbmp;
- pBmp->GetHBITMAP(Color(255, 255, 255, 255), &hbmp);
- bitmap.Attach(hbmp);
- pImgList->Replace(nIndex, &bitmap, NULL);
- if(pBmp)
- delete pBmp;
- // Redraw only a current item for removing flickering and fast speed.
- pListCtrl->RedrawItems(nIndex, nIndex);
- // Release used DC and Object
- if(image && pRes->nType == TYPE_ICON && pHideImg == NULL)
- delete image;
- }
- pListCtrl->Invalidate();
- }
- /************************************************************************/
- /*
- 函数: FindForderFromIndx
- 描述: 通过索引查找文件夹
- 参数:
- const int nIdx
- 返回: SFolderInfo*
- */
- /************************************************************************/
- SFolderInfo* ChoosePhotoSkin2::FindForderFromIndx(const int nIdx)
- {
- if(nIdx < 0 || nIdx >= m_vFolder.size())
- return NULL;
- return m_vFolder[nIdx];
- }
- /************************************************************************/
- /*
- 函数: MoveFileMainToSub
- 描述: 移动文件主目录到子目录
- 参数:
- vector<CString>& vMoveFile, //选择的文件
- SFolderInfo* pCurrSelForder, //当前选择的文件夹
- const int nCurrSelIndx //当前选择的数据索引
- 返回: 1成功, 0失败
- */
- /************************************************************************/
- int ChoosePhotoSkin2::MoveFileMainToSub(vector<CString>& vMoveFile, SFolderInfo* pCurrSelForder, const int nCurrSelIndx)
- {
- if(pCurrSelForder == NULL || nCurrSelIndx < 0 || vMoveFile.size() == 0)
- return 0;
- CStringArray* pArr = GetCurArray(nCurrSelIndx, pCurrSelForder);
- if(pArr == NULL)
- return 0;
- // 将主目录里手选的文件添加到子目录里;
- int nSize = vMoveFile.size();
- vector<CString>::iterator iter = vMoveFile.begin();
- for(;iter != vMoveFile.end();)
- {
- if((*iter) != _T(""))
- pArr->Add((*iter));
- ++iter;
- }
- return 1;
- }
- /************************************************************************/
- /*
- 函数: MoveFileSubToMain
- 描述: 移动文件子目录到主目录
- 参数:
- SFolderInfo* pCurrForder
- 返回: 1成功, 0失败
- */
- /************************************************************************/
- int ChoosePhotoSkin2::MoveFileSubToMain(SFolderInfo* pCurrForder, const int nCurrSelIndx)
- {
- if(pCurrForder == NULL)
- return 0;
- CStringArray* pArr = GetCurArray(nCurrSelIndx, pCurrForder);
- if(pArr == NULL)
- return 0;
- //将文件夹里的相片添加到主目录里;
- CStringArray* pAllPhotoArr = GetCurArray(nCurrSelIndx);
- int nSize = pArr->GetSize();
- for(int i = 0; i<nSize; i++)
- {
- CString strName = pArr->ElementAt(i);
- if(strName != _T(""))
- pAllPhotoArr->Add(strName);
- }
- return 1;
- }
- /************************************************************************/
- /*
- 函数: DelFolderFromName
- 描述: 通过文件名删除文件夹
- 参数:
- const CString& strName 文件夹名
- 返回: 1成功, 0失败
- */
- /************************************************************************/
- int ChoosePhotoSkin2::DelFolderFromName(const CString& strName)
- {
- if(strName == _T(""))
- return 0;
- vector<SFolderInfo*>::iterator iter = m_vFolder.begin();
- for(;iter != m_vFolder.end();)
- {
- SFolderInfo* p = (*iter);
- if(p != NULL && p->strName == strName)
- {
- delete p;
- m_vFolder.erase(iter);
- return 1;
- }
- ++iter;
- }
- return 0;
- }
- /************************************************************************/
- /*
- 函数: AddFolder
- 描述: 添加文件夹
- 参数:
- const CString& strName 文件名
- 返回:SFolderInfo* 返回新建文件夹指针
- */
- /************************************************************************/
- SFolderInfo* ChoosePhotoSkin2::AddFolder(const CString& strName)
- {
- if(strName == _T(""))
- return NULL;
- SFolderInfo* pForlder = new SFolderInfo();
- pForlder->strName = strName;
- m_vFolder.push_back(pForlder);
- return pForlder;
- }
- /************************************************************************/
- /*
- 函数: GetFolderData
- 描述: 获取文件夹数据
- 参数:
- CArray<CStringArray, CStringArray>& arr 返回文件夹信息
- 返回: 1成功,0失败
- */
- /************************************************************************/
- int ChoosePhotoSkin2::GetFolderData(CArray<CStringArray, CStringArray>& folderarr)
- {
- CString filter = _T("LoadFolder@OrderID='") + m_strOrderNumber + _T("'");
- g_sendhead.code[0] = 235;
- g_sendhead.tabcount = 1;
- g_sendhead.bsql = 0;
- g_pMainWnd->ProcessChatMessageRequest2(filter);
- if (g_bSendOK == 0)
- return 0;
- DataToArray(&folderarr);
- return 1;
- }
- //
- /************************************************************************/
- /*
- 函数: GetFolderDelPhotos
- 描述: 获取文件夹里删除的相片名
- 参数:
- CString& strDel 返回文件夹里删除的相片如:(;文件夹1>文件1;文件夹1>文件2;文件夹2>文件1;)
- 返回:
- */
- /************************************************************************/
- void ChoosePhotoSkin2::GetFolderDelPhotos(CString& strDelPhotos)
- {
- vector<SFolderInfo*>::iterator iter = m_vFolder.begin();
- while(iter != m_vFolder.end())
- {
- //读取所有文件夹里要删除的相片
- SFolderInfo* p = (*iter);
- if(p != NULL)
- GetDelPhotos(p->strName, &p->DelPhotoPath, FALSE, strDelPhotos);
- ++iter;
- }
- //添加头和尾字符;zz;
- if (!strDelPhotos.IsEmpty())
- {
- strDelPhotos.TrimLeft(_T(";"));
- strDelPhotos.TrimRight(_T(";"));
- strDelPhotos = _T(";") + strDelPhotos;
- strDelPhotos += _T(";");
- }
- }
- /************************************************************************/
- /*
- 函数: GetDelPhotos
- 描述: 获取删除的所有相片名
- 参数:
- const CString& strFolderName 文件夹名
- CStringArray* pDelPhotoArr, 删除的相片全路径集合
- const BOOL bAddEnd 是否添加结尾字符
- CString& strDelPhotos 返回相片名集合
- 返回:
- */
- /************************************************************************/
- void ChoosePhotoSkin2::GetDelPhotos(const CString& strFolderName, CStringArray* pDelPhotoArr, const BOOL bAddEnd, CString& strDelPhotos)
- {
- for (int i = 0; i < pDelPhotoArr->GetSize(); i++)
- {
- if (strDelPhotos.GetLength() > 4096)
- break;
- CString no = pDelPhotoArr->ElementAt(i); //在选片时被删除的相片名的全路径集合;
- no = no.Right(no.GetLength() - no.ReverseFind('\\') - 1);
- no = no.Left(no.Find('.'));
- strDelPhotos += strFolderName + _T(">");
- strDelPhotos += no;
- strDelPhotos += _T(";");
- }
- // strDelPhotos:解析为只有相片名,以分号为分隔符的字符串;
- if (!strDelPhotos.IsEmpty() && bAddEnd)
- {
- strDelPhotos.TrimLeft(_T(";"));
- strDelPhotos.TrimRight(_T(";"));
- strDelPhotos = _T(";") + strDelPhotos;
- strDelPhotos += _T(";");
- }
- }
- /************************************************************************/
- /*
- 函数: GetDelPhotos
- 描述: 获取删除的所有相片名
- 参数:
- CStringArray* pDelPhotoArr, 删除的相片全路径集合
- CString& strDelPhotos 返回相片名集合
- 返回:
- */
- /************************************************************************/
- void ChoosePhotoSkin2::GetDelPhotos(CStringArray* pDelPhotoArr, CString& strDelPhotos)
- {
- for (int i = 0; i < pDelPhotoArr->GetSize(); i++)
- {
- if (strDelPhotos.GetLength() > 4096)
- break;
- CString no = pDelPhotoArr->ElementAt(i); //在选片时被删除的相片名的全路径集合;
- no = no.Right(no.GetLength() - no.ReverseFind('\\') - 1);
- no = no.Left(no.Find('.'));
- strDelPhotos += no;
- strDelPhotos += _T(";");
- }
- // strDelPhotos:解析为只有相片名,以分号为分隔符的字符串;
- if (!strDelPhotos.IsEmpty())
- {
- strDelPhotos.TrimLeft(_T(";"));
- strDelPhotos.TrimRight(_T(";"));
- strDelPhotos = _T(";") + strDelPhotos;
- strDelPhotos += _T(";");
- }
- }
- /************************************************************************/
- /*
- 函数: LoadFolder
- 描述: 加载文件夹
- 参数:
- 返回:
- */
- /************************************************************************/
- void ChoosePhotoSkin2::LoadFolder()
- {
- CArray<CStringArray, CStringArray> folderarr;
- GetFolderData(folderarr);
- if(folderarr.GetSize() == 0)
- return;
- // 订单号;
- CString strOrderID = folderarr.ElementAt(0).ElementAt(0);
- // 文件夹名,以分号分隔;
- CString strFolderNames = folderarr.ElementAt(0).ElementAt(1);
- // 文件夹内的相片;
- CString strPhotos = folderarr.ElementAt(0).ElementAt(2);
- // 从文件夹内被删除的相片;
- CString strDelPhotos = folderarr.ElementAt(0).ElementAt(3);
- //清除文件夹;
- ClearFolder();
- //从文件夹名集里获取文件夹名并且创建文件夹;
- GetFolderFromFolders(folderarr.ElementAt(0).ElementAt(1));
- vector<SFolderInfo*>::iterator iter = m_vFolder.begin();
- while(iter != m_vFolder.end())
- {
- SFolderInfo* p = (*iter);
- if(p != NULL)
- {
- CStringArray arr;
- //通过文件夹名读取所有文件;
- GetNamesFromFoler(p->strName, folderarr.ElementAt(0).ElementAt(2), arr);
- int i = 0;
- for(i=0; i<arr.GetSize(); i++)
- {
- for(int j=0; j<m_AllPhotoPath.GetSize();)
- {
- CString strPhoto = m_AllPhotoPath.ElementAt(j);;
- strPhoto = strPhoto.Right(strPhoto.GetLength() - strPhoto.ReverseFind('\\') - 1);
- strPhoto = strPhoto.Left(strPhoto.Find('.'));
-
- if(arr.ElementAt(i) == strPhoto)
- {
- p->AllPhotoPath.Add(m_AllPhotoPath.ElementAt(j));
- m_AllPhotoPath.RemoveAt(j);
- }
- else
- ++j;
- }
- }
- arr.RemoveAll();
- //通过文件夹名读取要删除的文件;
- GetNamesFromFoler(p->strName, folderarr.ElementAt(0).ElementAt(3), arr);
- for(i=0; i<arr.GetSize(); i++)
- {
- for(int j=0; j<m_AllPhotoPath.GetSize();)
- {
- CString strPhoto = m_AllPhotoPath.ElementAt(j);;
- strPhoto = strPhoto.Right(strPhoto.GetLength() - strPhoto.ReverseFind('\\') - 1);
- strPhoto = strPhoto.Left(strPhoto.Find('.'));
-
- if(arr.ElementAt(i) == strPhoto)
- {
- p->DelPhotoPath.Add(m_AllPhotoPath.ElementAt(j));
- m_AllPhotoPath.RemoveAt(j);
- }
- else
- ++j;
- }
- }
- }
- ++iter;
- }
- }
- /************************************************************************/
- /*
- 函数: GetNamesFromFolder
- 描述: 从文件名集里获取文件夹名
- 参数:
- const CString& strFolders, 文件夹名集字符
- 返回:
- */
- /************************************************************************/
- void ChoosePhotoSkin2::GetFolderFromFolders(const CString& strFolders)
- {
- CString strNames = strFolders;
- strNames.TrimLeft(_T(";"));
- int nPos = 0;
- while(1)
- {
- //添加文件夹
- nPos = strNames.Find(_T(";"));
- if(nPos == -1)
- break;
- CString strName = strNames.Left(nPos);
- AddFolder(strName);
- if(strNames.GetLength() <= (nPos + 1))
- break;
- strNames = strNames.Right(strNames.GetLength() - (nPos + 1));
- }
- }
- /************************************************************************/
- /*
- 函数: GetNamesFromFoler
- 描述: 通过文件夹名读取文件
- 参数:
- const CString& strFolder, 文件夹
- const CString& strPhotos, 相片集字符 (;文件夹1>文件1;文件夹1>文件2;文件夹2>文件1;)
- CStringArray& arr 返回相片集
- 返回:
- */
- /************************************************************************/
- void ChoosePhotoSkin2::GetNamesFromFoler(const CString& strFolder, const CString& strPhotos, CStringArray& arr)
- {
- CString strNames = strPhotos;
- strNames.TrimLeft(_T(";"));
- int nPos = 0;
- while(1)
- {
- //文件夹1>文件1;
- nPos = strNames.Find(_T(";"));
- if(nPos == -1)
- break;
- CString strName = strNames.Left(nPos);
- //文件夹1>文件
- int n = strName.Find(_T(">"));
- if(n == -1)
- {
- if(strNames.GetLength() <= (nPos + 1))
- break;
- strNames = strNames.Right(strNames.GetLength() - (nPos + 1));
- continue;
- }
- CString strFolderName = strName.Left(n);
- if(strFolder != strFolderName)
- {
- if(strNames.GetLength() <= (nPos + 1))
- break;
- strNames = strNames.Right(strNames.GetLength() - (nPos + 1));
- continue;
- }
- CString strFile = strName.Right(strName.GetLength() - (n + 1));
- arr.Add(strFile);
- if(strNames.GetLength() <= (nPos + 1))
- break;
- strNames = strNames.Right(strNames.GetLength() - (nPos + 1));
- }
- }
- /************************************************************************/
- /*
- 函数: GetAllFolderNames
- 描述: 获取所有文件夹名
- 参数:
- CString& strNames 返回相片集字符 (;文件夹1>文件1;文件夹1>文件2;文件夹2>文件1;)
- 返回:
- */
- /************************************************************************/
- void ChoosePhotoSkin2::GetAllFolderNames(CString& strNames)
- {
- if(m_vFolder.size() == 0)
- return;
- vector<SFolderInfo*>::iterator iter = m_vFolder.begin();
- while(iter != m_vFolder.end())
- {
- SFolderInfo* p = (*iter);
- if(p != NULL)
- {
- strNames += p->strName;
- strNames += _T(";");
- }
- ++iter;
- }
- if(!strNames.IsEmpty())
- {
- strNames.TrimLeft(_T(";"));
- strNames.TrimRight(_T(";"));
- strNames = _T(";") + strNames;
- strNames += _T(";");
- }
- }
- /************************************************************************/
- /*
- 函数: GetAllFileFromFolder
- 描述: 通过文件夹获取所有文件
- 参数:
- const int nType, 需要获取的文件集类型
- CString& strFileNames 返回相片集字符 (;文件夹1>文件1;文件夹1>文件2;文件夹2>文件1;)
- 返回:
- */
- /************************************************************************/
- void ChoosePhotoSkin2::GetAllFileFromFolder(const int nType, CString& strFileNames)
- {
- if(m_vFolder.size() == 0)
- return;
- vector<SFolderInfo*>::iterator iter = m_vFolder.begin();
- while(iter != m_vFolder.end())
- {
- SFolderInfo* p = (*iter);
- if(p != NULL)
- {
- CStringArray* parr = GetCurArray(nType, p);
- if(parr == NULL)
- continue;
- CString strPhoto = _T("");
- for(int i=0; i<parr->GetSize(); i++)
- {
- //文件夹1>文件1;
- strPhoto = parr->ElementAt(i);
- strPhoto = strPhoto.Right(strPhoto.GetLength() - strPhoto.ReverseFind('\\') - 1);
- strPhoto = strPhoto.Left(strPhoto.Find('.'));
- strFileNames += p->strName;
- strFileNames += _T(">");
- strFileNames += strPhoto;
- strFileNames += _T(";");
- }
- }
- ++iter;
- }
- if(!strFileNames.IsEmpty())
- {
- strFileNames.TrimLeft(_T(";"));
- strFileNames.TrimRight(_T(";"));
- strFileNames = _T(";") + strFileNames;
- strFileNames += _T(";");
- }
- }
- /************************************************************************/
- /*
- 函数: ClearFolder
- 描述: 清除所有文件夹
- 参数:
- 返回:
- */
- /************************************************************************/
- void ChoosePhotoSkin2::ClearFolder()
- {
- m_OpenFolder = NULL;
- m_pCurrSelFolder = NULL;
- std::vector<SFolderInfo*>::iterator iter = m_vFolder.begin();
- for(;iter != m_vFolder.end();)
- {
- SFolderInfo* p = (*iter);
- if(p != NULL)
- delete p;
- ++iter;
- }
- m_vFolder.clear();
- }
- #if USE_SHARE_FLORD
- /************************************************************************/
- /*
- 函数:LoadDesignPhotos
- 描述:加载选设计所需相片;
- 参数:
- 返回:
- 调用约定:
- 注意:需要兼容异地选设计逻辑过程;
- 1.若开启异地选片,则读取本地数据库,加载共享目录信息;
- 2.
- */
- /************************************************************************/
- void ChoosePhotoSkin2::LoadDesignPhotos()
- {
- }
- /************************************************************************/
- /*
- 函数:LoadSelectPhotos
- 描述:加载选片所需相片;
- 参数:
- 返回:
- 调用约定:
- 注意:
- 1.需要兼容异地选片逻辑过程;
- 2.不支持分店选片或汇总选片;
- 选片逻辑:
- 1.若有缓存相片在本机,选择是否使用本机缓存,是则结束余下逻辑过程;
- 2.若是儿童成长套系,弹出选择套系项;
- 3.判断初修共享目录是否有订单相片存在,无则使用原片选片;
- 4.若初修共享目录有相片,则弹出选择:使用初修片 | 使用原片 | 使用初修+原片 进行选片,并获取所需相片路径(若原片和初修同时存在,只选择初修片相片);
- 5.获取dindan表的delphotos记录,从4中获取的相片路径中剔除delphotos的相片路径;
- */
- /************************************************************************/
- void ChoosePhotoSkin2::LoadSelectPhotos()
- {
- // 1.是否有本机缓存;
- if(IsThereACacheImg())
- m_bFromLocal = 1;
- else
- {
- // 2.1.先查找原始初修共享目录是否有相片;
- GetTXName(&m_strOrderNumber, 1, m_bGrowthTX, m_seltxname);
- //////////////////////////////////////////////////////////////////////////
- // 2.2.查找原始初修共享目录是否有相片;
- int nPhotoType = 0;
- BOOL bExistsEarlyPhotos = FALSE;
- TCHAR szShare[MAX_PATH] = {0};
- TCHAR szOrdePath[MAX_PATH] = {0};
- CStringArray strAryOfExistsEarlyDirectory; // 存在初修订单的文件夹路径;
- CStringArray strAryOfExistsOriginalDirectory; // 存在原片订单的文件夹路径;
- // 获取本地初修共享目录;
- CString domainname = "";
- int i = 0;
- #ifdef ENTERPRISE_VERSION
- for(i = 0; i < g_brancharray.GetSize(); i++)
- {
- if (g_branchname == g_brancharray.ElementAt(i).ElementAt(0))
- {
- domainname = g_brancharray.ElementAt(i).ElementAt(2);
- break;
- }
- }
- if (g_branchname != "")
- sprintf(szShare, _T("\\\\%s\\%s\\%s"), g_serverbak, _T("修好的片(管理软件)$"), domainname);
- else
- sprintf(szShare, _T("\\\\%s\\%s"), g_serverbak, _T("修好的片(管理软件)$"));
- #else
- sprintf(szShare, _T("\\\\%s\\%s"), g_serverbak, _T("修好的片(管理软件)$"));
- #endif //#ifdef ENTERPRISE_VERSION
- // 若是成长套系,初修片有子目录; 若是婚纱版,初修没有景点子目录;
- if ( m_bGrowthTX && ( !m_seltxname.IsEmpty() && m_seltxname != _T("全部")) )
- sprintf(szOrdePath, _T("%s\\%s\\%s"), szShare, m_strOrderNumber, m_seltxname);
- else
- sprintf(szOrdePath, _T("%s\\%s"), szShare, m_strOrderNumber);
- if ( PathFileExists(szOrdePath) )
- {
- // 存在初修片;
- strAryOfExistsEarlyDirectory.Add(CString(szOrdePath));
- }
- // 2.3.查找其他共享目录下的初修订单目录;
- int nSize = g_aryOfSharePathInfo.GetSize();
- for (i = 0; i < nSize; i++)
- {
- if ( 2 == atoi(g_aryOfSharePathInfo.ElementAt(i).ElementAt(5)) )
- {
- if ( g_aryOfSharePathInfo.ElementAt(i).ElementAt(1).Compare(g_branchname.IsEmpty() ? g_domain : g_branchname ) != 0 )
- {
- continue;
- }
- // 逐一加载其他共享目录;
- // 如果是成长套系且套系名不为空或全部;
- #ifdef ENTERPRISE_VERSION
- if (g_branchname != "")
- sprintf(szShare, _T("%s\\%s"), g_aryOfSharePathInfo.ElementAt(i).ElementAt(2), domainname);
- else
- sprintf(szShare,_T("%s"),g_aryOfSharePathInfo.ElementAt(i).ElementAt(2));
-
- #else
- sprintf(szShare,_T("%s"),g_aryOfSharePathInfo.ElementAt(i).ElementAt(2));
- #endif //#ifdef ENTERPRISE_VERSION
- // 若是成长套系,初修片有子目录; 若是婚纱版,初修没了景点了目录;
- if ( m_bGrowthTX && ( !m_seltxname.IsEmpty() && m_seltxname != _T("全部")) )
- {
- sprintf(szOrdePath, _T("%s\\%s\\%s"), szShare, m_strOrderNumber, m_seltxname);
- }
- else
- {
- sprintf(szOrdePath, _T("%s\\%s"), szShare, m_strOrderNumber);
- }
- if ( PathFileExists(szOrdePath) )
- {
- strAryOfExistsEarlyDirectory.Add(CString(szOrdePath));
- }
- }
- }
- // 查找所有初修订单目录的相片;
- //CNetShareInfo::GetInstance()->LoadSpecifiedDirectories(strAryOfExistsEarlyDirectory,m_AllPhotoPath);
- for ( i = 0; i < strAryOfExistsEarlyDirectory.GetSize(); i++ )
- {
- LoadSpecifiedDirectoryPhotos(strAryOfExistsEarlyDirectory.ElementAt(i), m_AllPhotoPath, TRUE, NULL, NULL);
- }
- // 如果初修片目录有相片,提供选片模式 选择:0=初修; 1=原片;2=原片+初修;
- if ( m_AllPhotoPath.GetSize() )
- {
- bExistsEarlyPhotos = TRUE;
- }
-
- //////////////////////////////////////////////////////////////////////////
- // 初修片存在,选择选片相片混合模式;
- if (bExistsEarlyPhotos)
- {
- 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
- {
- m_nChoosePhotoType = 1;
- strAryOfExistsEarlyDirectory.RemoveAll();
- AfxMessageBox(_T("温馨提示:\r\n未找到初修片,将使用原片选片"), MB_ICONINFORMATION);
- }
- //////////////////////////////////////////////////////////////////////////
- // 使用到原片的选片模式;
- if ( m_nChoosePhotoType != 0)
- {
- //////////////////////////////////////////////////////////////////////////
- // 3.1.加载原始原片共享目录;
- #ifdef ENTERPRISE_VERSION
- if (g_branchname != "")
- sprintf(szShare, _T("\\\\%s\\%s\\%s"), g_serverbak, _T("客户原片(管理软件)$"), domainname);
- else
- sprintf(szShare, _T("\\\\%s\\%s"), g_serverbak, _T("客户原片(管理软件)$"));
- #else
- sprintf(szShare, _T("\\\\%s\\%s"), g_serverbak, _T("客户原片(管理软件)$"));
- #endif //#ifdef ENTERPRISE_VERSION
- if ( m_bGrowthTX && ( !m_seltxname.IsEmpty() && m_seltxname != _T("全部")) )
- {// 儿童成长套系;
- sprintf(szOrdePath, _T("%s\\%s\\%s"), szShare, m_strOrderNumber, m_seltxname);
- }
- else
- {
- sprintf(szOrdePath, _T("%s\\%s"), szShare, m_strOrderNumber);
- }
- if ( PathFileExists(szOrdePath) )
- {
- // 存在原片;
- strAryOfExistsOriginalDirectory.Add(CString(szOrdePath));
- }
- // 3.2.查找其他共享目录;
- int nSize = g_aryOfSharePathInfo.GetSize();
- for ( int i = 0; i < nSize; i++)
- {
- if ( 1 == atoi(g_aryOfSharePathInfo.ElementAt(i).ElementAt(5)) )
- {
- // 逐一加载其他共享目录;
- if ( g_aryOfSharePathInfo.ElementAt(i).ElementAt(1).Compare(g_branchname.IsEmpty() ? g_domain : g_branchname ) != 0 )
- {
- continue;
- }
- #ifdef ENTERPRISE_VERSION
- if (g_branchname != "")
- sprintf(szShare,"%s\\%s",g_aryOfSharePathInfo.ElementAt(i).ElementAt(2), domainname);
- else
- sprintf(szShare,"%s",g_aryOfSharePathInfo.ElementAt(i).ElementAt(2));
- #else
- sprintf(szShare,"%s",g_aryOfSharePathInfo.ElementAt(i).ElementAt(2));
- #endif //#ifdef ENTERPRISE_VERSION
- if ( m_bGrowthTX && ( !m_seltxname.IsEmpty() && m_seltxname != _T("全部")) )
- {// 儿童成长套系;
- sprintf(szOrdePath, _T("%s\\%s\\%s"), szShare, m_strOrderNumber, m_seltxname);
- }
- else
- {
- sprintf(szOrdePath, _T("%s\\%s"), szShare, m_strOrderNumber);
- }
- if ( PathFileExists(szOrdePath) )
- {
- strAryOfExistsOriginalDirectory.Add(CString(szOrdePath));
- }
- }
- }
- }
- // 完成对选片所需的共享目录筛选,然后筛选目录的相片路径;
- LoadNecessaryImage(strAryOfExistsEarlyDirectory, strAryOfExistsOriginalDirectory, m_nChoosePhotoType);
- }
- // next.获取dindan表中的字段delphotos的相片编号,然后从m_AllPhotoPath中剔除delphotos的相片路径;
- // 暂由旧代码代替执行;
- }
- /************************************************************************/
- /* 函数:LoadNecessaryImage[4/17/2016 IT];
- /* 描述:加载最终选片所需要的相片路径;
- /* 参数:;
- /* [IN] strAryOfEarlyImage:订单初修片共享目录;
- /* [IN] strAryOfOriginalImage:订单原片共享目录;
- /* [IN] nSelectType:选片要用的相片类型:0 == 只用初修; 1 == 只用原片; 2 == 初修 + 原片,其中初修为主,原片为辅;
- /* 返回:void;
- /* 注意:初修片文件夹里没有任务子目录,如套系,景点这些子目录;
- /* 示例:;
- /*
- /* 修改:;
- /* 日期:;
- /* 内容:;
- /************************************************************************/
- void ChoosePhotoSkin2::LoadNecessaryImage(IN CStringArray &strAryOfEarlyImage, IN CStringArray &strAryOfOriginalImage, IN const int &nSelectType)
- {
- if ( m_bGrowthTX )
- {
- // 只有成长套系才有选择套系名;
- if ( m_seltxname == _T("全部") )
- m_seltxname.Empty();
- }
- else
- {
- // 非成长套系的,不会弹出对话框;
- m_seltxname.Empty();
- }
- int nSize = 0;
- CString strTemp;
- if ( nSelectType == 0) // 初修片;
- {
- // 初修已载过,不需要重新添加;
- //CNetShareInfo::GetInstance()->LoadSpecifiedDirectories(strAryOfEarlyImage,m_AllPhotoPath);
- }
- else if ( nSelectType == 1 ) // 原片;
- {
- m_AllPhotoPath.RemoveAll();
- nSize = strAryOfOriginalImage.GetSize();
- for ( int i = 0; i < nSize; i++)
- {
- LoadSpecifiedDirectoryPhotos(strAryOfOriginalImage.ElementAt(i), m_AllPhotoPath, FALSE, NULL);
- }
- }
- else // 初修+原片;
- {
- nSize = strAryOfOriginalImage.GetSize();
- for ( int i = 0; i < nSize; i++)
- {
- LoadSpecifiedDirectoryPhotos(strAryOfOriginalImage.ElementAt(i), m_AllPhotoPath, FALSE, NULL);
- }
- }
- }
- /************************************************************************/
- /*
- 函数:LoadSpecifiedDirectoryPhotos
- 描述:加载指定路径的相片;
- 参数:
- IN: lpSpecifiedDirectory 相片路径;
- OUT: strArray 存储相片路径的数组;
- IN: bEffect
- IN: pEarlyDirectory
- IN: pEarlyImages
- 返回:
- 调用约定:由LoadNecessaryImage调用;
- 注意:
- */
- /************************************************************************/
- void ChoosePhotoSkin2::LoadSpecifiedDirectoryPhotos(
- IN LPCTSTR lpSpecifiedDirectory,
- OUT CStringArray &strArray,
- IN BOOL bEffect,
- IN CStringArray *pEarlyDirectory,
- IN CStringArray *pEarlyImages)
- {
- if ( lpSpecifiedDirectory == NULL || strcmp(lpSpecifiedDirectory,_T("")) == 0 || !PathFileExists(lpSpecifiedDirectory) )
- return;
- using namespace helper_coffs;
- ffsco o;
- o.dirs(1);
- o.find(lpSpecifiedDirectory, LPCSTR("*.*"));
- ffsco::typeT cfs;
- ffsco::typeT::iterator it;
- cfs = o.co_file();
- int nIndex = 0;
- CString strName;
- CString strTemp;
- for ( it = cfs.begin(); cfs.end() != it; it++)
- {
- // 去除目录级文件;
- // 去除ok文件;
- // 去除modifytime文件;
- // 去除s+m缩略图;
- strName = it->c_str();
- strName.MakeLower();
- if ( strName.Find('.') == -1)
- continue;
- else
- {
- CString str = strName.Mid( strName.ReverseFind('\\') + 1 );
- if ( str.Find('.') == -1)
- continue;
- }
- if ( strName.GetAt( strName.ReverseFind('\\') + 1 ) == 's' )continue;
- if ( strName.GetAt( strName.ReverseFind('\\') + 1 ) == 'm' )continue;
-
- // 剔除nef,cr2,raw之类的原始相片格式;
- //if ( strName.Find(_T(".jpg")) == -1 )continue;
- if ( strName.Right(4).CompareNoCase(_T(".jpg")) != 0 )
- {
- if ( strName.Right(5).CompareNoCase(_T(".jpeg")) != 0 )
- continue;
- }
- // 再判断是否为数字编号;
- strTemp = strName.Mid( strName.ReverseFind('\\') + 1);
- strTemp = strTemp.Left( strTemp.ReverseFind('.'));
- if ( !g_bOriginal )
- {// 系统数字命名;
- if ( !myisdigit(strTemp) )
- {
- if ( bEffect )
- {// 初修效果图;
- if ( strTemp.Find('-') != -1)
- {
- strTemp = strTemp.Left( strTemp.Find('-') );
- strTemp.TrimRight(_T(" ")); // 去除空格;
- if ( myisdigit(strTemp) )
- strArray.Add(strName);
- }
- }
- continue;
- }
- }
- // 判断strTemp是否在strArray中存在同名的相片;
- BOOL bIsonym = FALSE;
- CString strNumber;
- for ( int n = 0; n < strArray.GetSize(); n++ )
- {
- strNumber = strArray.ElementAt(n);
- strNumber = strNumber.Mid(strNumber.ReverseFind('\\') + 1);
- strNumber = strNumber.Left(strNumber.ReverseFind('.'));
- if ( strNumber.CompareNoCase(strTemp) == 0 )
- {
- bIsonym = TRUE;
- break;
- }
- }
- if ( !bIsonym )
- nIndex = strArray.Add(strName);// 同时记录索引值,有初修使用初修替换;
- }
- }
- #endif //#if USE_SHARE_FLORD
|