MFC ListControl控件用法.docx
IvColumn.pszText=JrFWName*);ttJlfl亮名)m_Storeltems.lnsertColumn(0,&lvC。IUmn);/MiD列,索引为0IvColumn.mask=1.VCF_FMT1.VCF,TEXT1.VCF_V/IDTH;IvCoIumnJmt=1.VCFMT1.EFT;IvCoIumnxx三100;IvColumn.pszText三.T(,Profession*);m_Storeltems.lnsertColumn(1.&lvColumn);IvColumn.mask=1.VCF_FMT1.VCF.TEXT1.VCF_WIDTH;IvCoIumnJmt=1.VCFMT.1.EFT:IvCoIumnxx三80;IvColumn.pszText三.T(wFavSportn);m_Storeltems.lnsertColumn(2.&lvColumn);IvColumn.mask=1.VCF,FMT1.VCF_TEXT1.VCFjIDTH;IvCoIumnJmt=1.VCFMT_1.EFT;IvCoIumnxx三75;IvColumn.pszText=JrrHObby");m-Sloreltems.lnsenColumn(31&lvColumn);m_Storeltems.SetltemText(nltem,2t-T("HandBall',);m_Storeltems.SetltemText(nltem.3.-T("Beach,);lvltm,mask=1.VIF,TEXT;lvltem.Htem三1;IvItemJSubUem三0;Ivltem.pszText三-T("RogerA.Miller");nltem三m_Storeltems.lnsertltem(&lvhem);m-Storltms.SetltemText(nltem.1._T(MFootballer");m-Storltms.SetltmText(nltem.2l-T(uTnnis");mStoreltems.S<HllemTe×t(nltemt3lT('Toachirg");lvltem.mask三1.VIF_TEXT;lvttem.Utem三2;IvhemJSubItem三0;Ivltem.pszText三.TCMarie-JuIieW.Gross");nltem三mStorellemsJnsertltem(lvltem);mStoreltems.SetltemText(nltemf1,.Tf*Studnt");m.Sloreltems.Se<ltemText(nltem,2,_T("Boxing*);m_Storeltems.SetltemText(nltem.3.-T(,Programmingw);Ivltem.mask=1.VlFJrEXT;IvItemJItem三3;IvItemJSubIIem三0;Ivltem.pszTexta-T("EllaPiusRoger,*);4)M»f?iBOO1.DclctcRemdntnltem)1除指定的索引为nltcm的行内容有时候我!会鬼邃中茶行焦后”这个时候察JyeSlUntGetNextltem(intnltem.MtnFIags);从指定的索引nltem(不包括该*引,假如央包括读行的话,*nltem-1即可)18先找寻意nFlags条件的Mm,胜利JM题目找Jl的WCm的索引(假如有步个JB返回第一个)央JRJ6回1.这禅的话假如JHMI选中的茶行。可协tt#韧mStorltms.Dltltm(m-Storltms.GetNxtltm(.1.1.VNI_SE1.ECTED);(BttJWUWt三三fi中t*M*thls->m_Storeltems.SetExtendedSty1e(1.VS_EX_FU1.1.ROWSE1.ECT);这禅盘中的时IMt是一行了,否。会是一格假如襄,多行选中的,Je可以用下面的代码,intnlndex:do(nlndex三m-Storeltems.GetNextltem(-111.VN1.SE1.ECTED);m_Sloreltems.Deleteltem(nlndex);while(nlndex!三-1);这里IMQ一点Blt的,以下代码可供K(自CSDN),VOidCMy1.istView:AutoAdjustCoIumnWidthO(CHeaderCtrrpHeaderCtrl=m-p1.lstCtrl->GetHeaderCtr1();mp1.islCtrl>SctRc<iraw(FA1.SE);.K±W三PHeaderCtrlOsetRedraw(FA1.SE)YfWzPJintnColumnCount=pHeaderCtrl->GetltemCount();力婆栩RHRfor(inti0;IVnCoIUmnCOUnt;1*)(m_p1.istCtrl->SetColumnWidth(i,1.VSCW_AUTOSIZE);intnColumnWidth=m-p1.istCtrk>GetColumnWidth(i);IvColumn.mask三1.VCF_FMT1.VCF_TEXT1.VCFJVIDTH1.VCFJMAGE;IvColumn.fmt三1.VCFMT_1.EFT1.VCFMTJMAGE;IvCoIumnxx=120;IvColumn.pszText=-TFullNaEe)IvCoIumnJImage三O;m_Storeltems.lnsertColumn(OtAIvCoIumn);IvColumn.mask三1.VCF_FMT1.VCF_TEXT1.VCF_V/IDTH;IvColumn.fmt三1.VCFM1.1.EFT:IvColumn.cx=100;IvColumn.pszText=T(wProfessk)n;m-Storeltems.lnserlColumn(1lAIvCoIumn);IvColumn.maskb1.VCF_FMT1.VCF_TEXT1.VCFjwIDTH1.VCFJMAGE;IvColumn.fmt=1.VCFMT_1.EFT1.VCFMTJMAGE;IvCoIumnJImage三1;IvCoIumnxx三80;IvColumn.pszText=_T("FavSport");m-SloreltemsJnseHColumn(21AIvCoIumn);IvColumn.mask三三1.VCF_FMT1.VCF_TEXT1.VCF_V,DTH;IvColumn.fmt=1.VCFMT_1.EFT:IvColumn.cx三75;IvColumn.pszText=_TCHobby");m_Sloreltems.lnse11Column(3,&lvColumn);voidCDepartmentStoreDlg:SetViewType(DWORDdwViewType)DWORDdwCurTyp;HWNDhWnd;hWrdth>mStoreitems;GetSafeHwndO;dwCurType三:GetWindow1.ong(hWnd.GV/1._STY1.E);dwCurType&=-1.VS,TYPEMASK;dwViewType:=dwCurType;:SetWindow1.ong(hWnd,GW1.STY1.E,dwViewType);体上承加1.argc、Smalk1.ist、DcuiHsISjbutton,添加"标点击,务的响应盘敷,如下.voidCDepartmentstoreDlgziOnBnCIicked1.argeO(/TODO:在Igto控件建知处程声代码SctViewTypcdVSICON);voidCDepartmentStoreDlg:OnBnClickedSmall()(/Todo:at*tatt件知科if(GctViewTypeO!=1.VSSMA1.1.ICON)SetviewType(1.VS-SMA1.1.ICON);voidCDepartmentstoreDlgziOnBnCIickedDetaiK)/TODO:件H8Mt碍if(GctVicwTypeO!三1.VSREPORT)SetViewType(1.VS_REPORT);voidCDepartmentStoreDlg:OnBnClicked1.ist()/TODO:在此添加控件建知HaUF代码lf(GetViewTypeO!三1.VS_1.IST)SetViewType(1.VS.UST);体上的NeWMm按IB用的体如下,用来添加皴,玲穹体制类,井的控件厚加相应如.Departmentstore-NewItem添加2个地图贵,H在为ID:IDB1.argingWeightz162Height:32,ID:IDBSmalllngWclght:80Height:16初妁化融敷代码,m_Storeltems.SetView(1.VS_REPORT):1.vcolumnIVCOlUmn;IvColumn.mask=1.VCF_FMT1.VCF_TEXT1.VCF_WIDTH;IvCoIumnJmt=1.VCFMTCENTER;IvCoIumnxx三60;IvColumn.pszText三_T(wltem9,t);this->m_Storeltems.lnsertColumn0.&lvColumn);IvColumn.mask=1.VCF_FMT1.VCF.TEXTI1.VCF_V/IDTH;IvCoIumnJmt三1.VCFMT1.EFT;IvCoIumnxx三100;IvColumn.pszText三-T(wCategoryw);this->m_Storeltems.lnsertColumn(1,&lvColumn);IvColumn,mask=1.VCF_FMT1.VCF,TEXT1.VCF_WIDTH;IvCoIumnJmt=1.VCFMT1.EFT;IvCoIumnxx=160;IvColumn.pszText三.T(11temName');this->m_Storeltems.lnsertColumn(2.&lvColumn);IvColumn.mask=1.VCF_FMT1.VCF,TEXT1.VCF_V/IDTH;IvCoIumnJmt=1.VCFMT_1.EFT;IvCoIumnxx=80;IvColumn.pszText三Jrc*S*);this->m-Storeltems.lnsertColumn(3.&lvColumn);IvColumn.mask三1.VCF_FMT1.VCF_TEXT1.VCFjWTH;IvCoIumnJmt=1.VCFMT_RIGHT;IvCoIumnxx三60;IvColumn.pszText三JrrUnItPrice");this->m_Storeltems.lnsertColumn(4,SIvCoIumn);IvColumn.mask=1.VCF_FMT1.VCF_TEXT1.VCFjIDTH;IvCoIumnJmt=1.VCFMT_RIGHT;IvCoIumnxx三30;IvColumn.pszText三JrrQy);this>m.Storeltems.lnse11Column(5,SIvCoIumn);this->m_Storeltems.SetExlendedStyle(1.VS_EX_FU1.1.ROWSE1.ECT|1.VS_EX_GRIDUNES);;ttBrJRMftm,Smalllmg.Create(IDB-Sma11ingl16,1,RGB(255t255,255);m_1.argelmg.Create(IDB_1.arging.32,1.RGB(255,255,245);m_Storeltems.Setlmage1.ist(Am_SmalHmg,1.VSI1._SMA1.1.);m_Storeltems.Setlmage1.ist(&m_1.argelmg,1.VSI1._NORMA1.);NCWnCmsHB的响应flfc为(将添:kHtem的如nclude进耒八voidCDepartmentstorGDlgzzonBnCIickedNewilemO(/TODO:在此或to控件通知处JI界序代码CNewItemDIgdig;"这个是*MHH的Ir体类srand(unsigned)time(NU1.1.);TCHARstrNumbef(20;intnumbed=rand()%100;intumbcr2三rand()%100;wspdntf(strNumberT("%d-%d,),number1t11umber2);dlg.mJtemNumber三StrNumber;if(dlg.DoModal()(1.VITEMIvltem;intnltem;IntimgNbr;if(dlg.m_Category三三oBabies'*)imgNbr三0;els©if(dlg.mCategory三='Teens,)imgNbr三1;elsert(dlg.m-Category三三"Women0)ImgNbr三2;elsert(dlg.m_Category三三"Men")imgNbr三3;elseimgNbr三4;lvltem.mask三1.VIFJMAGE1.VIF_TEXT;Ivltemjltem=O;IvhemjSubItem三O;Ivltem.pszText三StrNumber;Ivltem.Umage=imgNbr;nltem三thls>>m_Storeltems.lnsertltem&lvltem);this->fn.Storeltems.SetltemText(nhem,1,dlg.m_Category);this->m_Storeltems.SetltemText(nKem,2.dlg.m_hemName);this>fn-Storeltms.SetltmText(nltm,3.dlg.m_ltemSize);this>mStoreltcms.SetHemText(nHem14,dlg.mUnitPrice);this>mStoreltcms.SetHemText(nNemt5ldlg.mQuantity);效果图,Item#CategoryItemNameSizeUntPriceQty51-67©76-30Women1.aceDesirePantyM227.15自1句MenClassicPmstnpeSUIt38145.90806875BabiesInfantGirfcBaeertnaDress2M22.8514由57书TeensGirteCbssyHandbagOneSee95.95450-27WomenStretchFbreJeansPetre27.756061-32MenTrendyJacketMedium45.8588663MscelldneousChocolateGiftBoxMedium455剑8WomenCashmereUnedGlove8115.9512范嬴15geiISmalIgllDetafcCbserDepartmentStore51-6776-30l-6168-75fi57-45050-27©61-32)863断T8NewKem1.argeSnBl1.istDetaisOose©X©51-6768-7561-32©S©76-3057-4586-63Q©1-6150-271-48NewBem"W瑞ESmaIustDetaisCtosethis>mStorcItems1SetExlendcdStyle(1.VSEXFU1.1.ROWSE1.ECT1.VSEXGRID1.INES1.VS_EX_CHECKBOXES);.W1QcheckboxA*DepartmentStoreitemWCategoryItemNameSizeUnitPnceQty8.MiscelaneousChocolateGiftBoxMedum455£2.MenCbSSiCPhstripeSuit3814582.BabesInfantGrteBaBernaDress2M5614NeWltem1.argeSmal二1.ttDetafcSSefDepartmentStoreDetafcOoseNewitem1.argeSmal1.et