void CSideBar::SetAttributeChecks() { MetaGraph *graph = m_treeDoc->m_meta_graph; if (graph == NULL) { return; } CListCtrl& list = GetListCtrl(); if (graph->viewingProcessed()) { int displayed_attribute = graph->getDisplayedAttribute(); LVITEM item; for (int i = 0; i < list.GetItemCount(); i++) { item.iItem = i; item.iSubItem = 0; item.iImage = 0; item.mask = LVIF_IMAGE; list.GetItem(&item); int image = item.iImage; if ((i-1) == displayed_attribute) { if (!m_attribute_locked[i]) { image = 0; } else { image = 2; } } else { if (!m_attribute_locked[i]) { image = 1; } else { image = 3; } } if (item.iImage != image) { item.iImage = image; list.SetItem(&item); } } } }
/** * Called when a stage is moved * @param pMaterial The material that was deleted. * @param from The from index * @param to The to index */ void StageView::MV_OnMaterialStageMove(MaterialDoc* pMaterial, int from, int to) { if(!internalChange) { from++; to++; CListCtrl& list = GetListCtrl(); char szLabel[256]; LV_ITEM lvi; ZeroMemory(&lvi, sizeof(LV_ITEM)); lvi.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_STATE | LVIF_PARAM; lvi.stateMask = LVIS_DROPHILITED | LVIS_FOCUSED | LVIS_SELECTED; lvi.pszText = szLabel; lvi.iItem = from; lvi.cchTextMax = 255; list.GetItem(&lvi); //Delete the original item list.DeleteItem(from); //Insert the item lvi.iItem = to; list.InsertItem(&lvi); int type = -1; int stageType = currentMaterial->GetAttributeInt(to-1, "stagetype"); switch(stageType) { case MaterialDoc::STAGE_TYPE_NORMAL: type = MaterialDefManager::MATERIAL_DEF_STAGE; break; case MaterialDoc::STAGE_TYPE_SPECIALMAP: type = MaterialDefManager::MATERIAL_DEF_SPECIAL_STAGE; break; } m_propView->SetPropertyListType(type, to-1); Invalidate(); } }
CString CLeftView::GetHeaderState(void) { CString szHeader; CListCtrl& ctlList = (CListCtrl&) GetListCtrl(); CHeaderCtrl* pHeaderCtrl = ctlList.GetHeaderCtrl(); HDITEM hdi; int nCount = pHeaderCtrl->GetItemCount(); for(int i = 0; i < nCount; i++) { hdi.mask = HDI_WIDTH; pHeaderCtrl->GetItem(i, &hdi); CString szWidth; szWidth.Format( _T("%d,"), hdi.cxy); szHeader.Append( szWidth ) ; } return szHeader; }
void CLeftView::OnSelChanged (NMHDR* pNMHDR, LRESULT* pResult) { NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR; if ((pNMListView->uChanged & LVIF_STATE) && (pNMListView->uNewState & LVIS_SELECTED)) { CListCtrl& ctlList = (CListCtrl&) GetListCtrl(); DWORD nIndex = (DWORD) ctlList.GetItemData(pNMListView->iItem); // send onupdate event with param CALDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); pDoc->UpdateAllViews(this, nIndex, NULL); } // Why in some code samples this set to zero ?? *pResult = 0; }
void CGldEditorView::LoadGlobals(void) { CListCtrl &list = GetListCtrl(); int nColumns = list.GetHeaderCtrl()?list.GetHeaderCtrl()->GetItemCount():0; for (int i=0; i<nColumns; i++) list.DeleteColumn(0); CRect wr; list.GetClientRect(&wr); int nCol=0; int nWid=0; #define W(X) (nWid+=X,X) int Name = list.InsertColumn(nCol++,"Name",LVCFMT_LEFT,W(150),nCol); int Module = list.InsertColumn(nCol++,"Module",LVCFMT_LEFT,W(150),nCol); int Type = list.InsertColumn(nCol++,"Type",LVCFMT_LEFT,W(100),nCol); int Access = list.InsertColumn(nCol++,"Access",LVCFMT_LEFT,W(150),nCol); int Data = list.InsertColumn(nCol++,"Data",LVCFMT_LEFT,wr.Width()-nWid,nCol); #undef W GLOBALVAR *var = NULL; while ((var=global_getnext(var))!=NULL) { char modname[1024], varname[1024]; int nItem = list.InsertItem(list.GetItemCount(),var->name); char buffer[1024]=""; if (sscanf(var->name,"%[^:]::%s", modname, varname)==2) { list.SetItemText(nItem,Name,varname); list.SetItemText(nItem,Module,modname); } list.SetItemText(nItem,Type,class_get_property_typename(var->prop->ptype)); convert_from_enumeration(buffer,sizeof(buffer),&(var->prop->access),object_access_property()); list.SetItemText(nItem,Access,buffer); global_getvar(var->name,buffer,sizeof(buffer)); list.SetItemText(nItem,Data,buffer); } }
void RightListView::OnInitialUpdate() { CListView::OnInitialUpdate(); const int numofColumn=7; int i; CString m_ColumnLabelStr[numofColumn]={"Frequence(lp/mm)","MTF(T)","MTF(S)","LSF(T)","LSF(S)","POS(t)","POS(s)"}; CListCtrl& listctrl=GetListCtrl(); listctrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_UNDERLINEHOT); int ColumnWidth[numofColumn]={140,100,100,100,100,100,100}; for(i=0;i<numofColumn;i++) { listctrl.InsertColumn(i,m_ColumnLabelStr[i],LVCFMT_LEFT,ColumnWidth[i]); } CBackgroundWnd* FrameWndPoint=(CBackgroundWnd*)(GetParentFrame()); int arraylen=FrameWndPoint->getarraylength(); double* dpfreq=FrameWndPoint->getdFreq(); double* dpmtft=FrameWndPoint->getdMTFt(); double* dpmtfs=FrameWndPoint->getdMTFs(); double* dplsft=FrameWndPoint->getdLSFt(); double* dplsfs=FrameWndPoint->getdLSFs(); double* dppost=FrameWndPoint->getdPOSt(); double* dpposs=FrameWndPoint->getdPOSs(); char insertbuffer[100]; for(i=0;i<arraylen;i++) { sprintf(insertbuffer,"%.4lf",dpfreq[i]); listctrl.InsertItem(i,insertbuffer); sprintf(insertbuffer,"%.4lf",dpmtft[i]); listctrl.SetItemText(i,1,insertbuffer); sprintf(insertbuffer,"%.4lf",dpmtfs[i]); listctrl.SetItemText(i,2,insertbuffer); sprintf(insertbuffer,"%.4lf",dplsft[i]); listctrl.SetItemText(i,3,insertbuffer); sprintf(insertbuffer,"%.4lf",dplsfs[i]); listctrl.SetItemText(i,4,insertbuffer); sprintf(insertbuffer,"%.4lf",dppost[i]); listctrl.SetItemText(i,5,insertbuffer); sprintf(insertbuffer,"%.4lf",dpposs[i]); listctrl.SetItemText(i,6,insertbuffer); } }
int CRuleListView::RefreshAdapter(CAdapterInfo *pAdapterInfo) { CListCtrl& listView = GetListCtrl(); int nIndex = 0; CHAR szIndex[10]; RtlZeroMemory(szIndex, sizeof(szIndex)); // VirtualAdapterName _stprintf(szIndex, _T("%d"), nIndex + 1); listView.InsertItem(nIndex, szIndex); listView.SetItemText(nIndex, 1, _T("VirtualAdapterName")); listView.SetItemText(nIndex, 2, pAdapterInfo->m_strVirtualAdapterName); // LowerAdapterName _stprintf(szIndex, _T("%d"), ++nIndex + 1); listView.InsertItem(nIndex, szIndex); listView.SetItemText(nIndex, 1, _T("LowerAdapterName")); listView.SetItemText(nIndex, 2, pAdapterInfo->m_strLowerAdapterName); // FriendlyAdapterName _stprintf(szIndex, _T("%d"), ++nIndex + 1); listView.InsertItem(nIndex, szIndex); listView.SetItemText(nIndex, 1, _T("FriendlyAdapterName")); listView.SetItemText(nIndex, 2, pAdapterInfo->m_strFriendlyAdapterName); // FriendlyAdapterName _stprintf(szIndex, _T("%d"), ++nIndex + 1); listView.InsertItem(nIndex, szIndex); listView.SetItemText(nIndex, 1, _T("PhysicalAddress")); listView.SetItemText(nIndex, 2, pAdapterInfo->m_strAdapterMacAddress); return nIndex; }
void CTblInfoView::UpdateListInfo(CString strTblName) { if (m_Operation != OP_NONE) { AfxMessageBox("请先提交操作"); return; } //just need to set the header. static CMainFrame* pMainFrame = reinterpret_cast<CMainFrame*>(AfxGetMainWnd()); static CListCtrl &ctrl = GetListCtrl(); CHeaderCtrl *pHeader = ctrl.GetHeaderCtrl(); CNetWork *pNet = &pMainFrame->m_Nets; int nCount = pHeader->GetItemCount(); int i; for (i = 0; i < nCount; i++) { //pHeader->DeleteItem(0); bug, should do like this ctrl.DeleteColumn(0); } ctrl.DeleteAllItems(); //m_map_tbl_cols[strTblName]; CString strOri = pNet->GetOriName(strTblName); CString strCols = pNet->GetColsForTbl(strOri); CString strSub = _T(""); for (i = 0; ; i++) { if (!AfxExtractSubString(strSub, strCols, i, '|') || 0 == strSub.GetLength()) { break; } //we use alias ctrl.InsertColumn(i, pNet->GetAlias(strSub), LVCFMT_LEFT, 70); } m_strCurTbl = strOri; }
// @pymethod <o LV_COLUMN>|PyCListCtrl|GetColumn|Retrieves the details of a column in the control. PyObject *PyCListCtrl_GetColumn( PyObject *self, PyObject *args ) { int col; if (!PyArg_ParseTuple( args, "i:GetColumn", &col)) // @pyparm int|column||The index of the column whose attributes are to be retrieved. return NULL; CListCtrl *pList = GetListCtrl(self); if (!pList) return NULL; TCHAR textBuf[256]; LV_COLUMN lvItem; lvItem.pszText = textBuf; lvItem.cchTextMax = sizeof(textBuf)/sizeof(TCHAR); lvItem.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH; GUI_BGN_SAVE; BOOL ok = pList->GetColumn( col, &lvItem); GUI_END_SAVE; if (!ok) RETURN_ERR("GetColumn failed"); return PyWinObject_FromLV_COLUMN(&lvItem); }
// @pymethod int|PyCListCtrl|SetImageList|Assigns an image list to a list view control. PyObject *PyCListCtrl_SetImageList( PyObject *self, PyObject *args ) { CListCtrl *pList; PyObject *obList; int imageType; if (!(pList=GetListCtrl(self))) return NULL; if (!PyArg_ParseTuple(args, "Oi:SetImageList", &obList, // @pyparm <o PyCImageList>|imageList||The Image List to use. &imageType )) // @pyparm int|imageType||Type of image list. It can be one of (COMMCTRL.) LVSIL_NORMAL, LVSIL_SMALL or LVSIL_STATE return NULL; CImageList *pImageList = PyCImageList::GetImageList(obList); if (pImageList==NULL) return NULL; GUI_BGN_SAVE; CImageList *pOldList = pList->SetImageList( pImageList, imageType ); GUI_END_SAVE; if (pOldList==NULL) RETURN_NONE; return ui_assoc_object::make( PyCImageList::type, pOldList )->GetGoodRet(); }
void CLeftView::UpdateIcon() { int i=0, iCount=0, iGap = 0; double dDeviation = 0; CFoulerDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if( pDoc->m_sprt.GetReady() == FALSE ) return; dDeviation = pDoc->m_sprt.GetDeviation(); if( dDeviation <= 0 ) return; CListCtrl& refCtrl = GetListCtrl(); iCount = refCtrl.GetItemCount(); for( i = 0 ; i < iCount ; i++ ) { iGap = (int)( (pDoc->m_pData[i]->GetItem()-pDoc->m_sprt.GetTheta0())/dDeviation ); iGap = abs(iGap); if( iGap > 3 ) iGap = 3; refCtrl.SetItem( i, 0, LVIF_IMAGE, NULL, iGap, 0, 0, 0 ); } //refCtrl.Scroll( CSize(100, pDoc->m_iNo*20) ); }
bool CGumpListView::SaveGumpDesc(LPCTSTR szDescFile) { CListCtrl& ctrl = GetListCtrl(); CStdioFile file; if (!file.Open(szDescFile, CFile::modeCreate | CFile::modeWrite)) return false; int id = 0; LPCTSTR desc; for (int i = 0; i < ctrl.GetItemCount(); i++) { id = ctrl.GetItemData(i); desc = GetGumpDesc(id); file.WriteString(GfxSprintf("0x%04X=%s\n",id, desc ? desc : "")); } file.Close(); return true; }
// @pymethod int|PyCListCtrl|SetItem|Sets some of all of an items attributes. PyObject *PyCListCtrl_SetItem( PyObject *self, PyObject *args ) { CListCtrl *pList; PyObject *obLVItem; if (!(pList=GetListCtrl(self))) return NULL; if (!PyArg_ParseTuple(args, "O:SetItem", &obLVItem)) // @pyparm <o LV_ITEM>|item||A tuple describing the new item. return NULL; LV_ITEM lvItem; if (!PyWinObject_AsLV_ITEM(obLVItem, &lvItem)) return NULL; GUI_BGN_SAVE; BOOL ok = pList->SetItem(&lvItem); GUI_END_SAVE; PyWinObject_FreeLV_ITEM(&lvItem); if (!ok) RETURN_ERR("SetItem failed"); RETURN_NONE; }
/* OnColumnClick() */ void CWallBrowserFileView::OnColumnClick(NMHDR* pnmh,LRESULT* /*pResult*/) { NM_LISTVIEW* pnmlv = (NM_LISTVIEW*)pnmh; switch(pnmlv->iSubItem) { case 0: g_bFileNameAscending = !g_bFileNameAscending; break; case 1: g_bSizeAscending = !g_bSizeAscending; break; case 2: g_bModifiedAscending = !g_bModifiedAscending; break; } g_nSortOrder = pnmlv->iSubItem; GetListCtrl().SortItems(CompareFunc,pnmlv->iSubItem); }
void CLeftView::OnContextMenu(CWnd* pWnd, CPoint point) { char cStr[64]; ZeroMemory( cStr, sizeof(cStr) ); CMenu menu; CFoulerDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); menu.CreatePopupMenu(); CListCtrl& refCtrl = GetListCtrl(); int iCount = refCtrl.GetSelectedCount(); if( iCount > 0 ) { wsprintf( cStr, "%d items have been selected", iCount ); menu.AppendMenu( MF_STRING, NULL, cStr ); menu.AppendMenu( MF_STRING, ID_EDIT_COPY, "Copy" ); } if( CanPaste() ) menu.AppendMenu( MF_STRING, ID_EDIT_PASTE, "Paste" ); SetForegroundWindow(); menu.TrackPopupMenu( TPM_LEFTALIGN, point.x, point.y, this, NULL ); }
// @pymethod int|PyCListCtrl|SetItemData|Sets the item's application-specific value. PyObject *PyCListCtrl_SetItemData( PyObject *self, PyObject *args ) { CListCtrl *pList = GetListCtrl(self); if (!pList) return NULL; int item; PyObject *data; if (!PyArg_ParseTuple( args, "iO:SetItemData", &item, // @pyparm int|item||Index of the item whose Data is to be set. &data)) // @pyparm object|Data||New value for the data. return NULL; if (data==Py_None) data = NULL; GUI_BGN_SAVE; BOOL ok = pList->SetItemData(item, (DWORD_PTR)data); GUI_END_SAVE; if (!ok) RETURN_ERR("SetItemData failed"); // @comm Note that a reference count is not added to the object. This it is your // responsibility to make sure the object remains alive while in the list. RETURN_NONE; }
void CFairyPackerView::OnEditDelete() { // TODO: 在此添加命令处理程序代码 CListCtrl& lc = GetListCtrl(); CFairyExplorer* exp = &GetDocument()->m_Explorer; bool bRemove = false; POSITION pos = lc.GetFirstSelectedItemPosition(); while( pos ) { int selectIndex = lc.GetNextSelectedItem( pos ); CFairyExplorer::PKNode* node = (CFairyExplorer::PKNode*)lc.GetItemData( selectIndex ); if( !node ) continue; if( node->strName == "." || node->strName == ".." ) continue; if( !bRemove ) { CString info = _T("确定要移除"); if (!pos) { info += _T("("); info += F_UTF8ToUnicode(node->strName).c_str(); info += _T(")吗?"); } else info += _T("被选择的内容吗?"); if( MessageBox(info, _T("提示"), MB_YESNO|MB_ICONQUESTION) != IDYES ) { return; } } exp->Remove( node->strName ); bRemove = true; } if( bRemove ) m_pDocument->UpdateAllViews( NULL ); }
/** * Dispalys the popup menu with the appropriate menu items enabled. */ void StageView::PopupMenu( CPoint *pt ) { //Determine the type of object clicked on CListCtrl &list = GetListCtrl(); ClientToScreen( pt ); CMenu FloatingMenu; VERIFY( FloatingMenu.LoadMenu( IDR_ME_STAGELIST_POPUP ) ); CMenu *pPopupMenu = FloatingMenu.GetSubMenu( 0 ); ASSERT( pPopupMenu != NULL ); POSITION pos = list.GetFirstSelectedItemPosition(); int nItem = -1; if( pos ) { nItem = list.GetNextSelectedItem( pos ); } if( nItem <= 0 ) { pPopupMenu->EnableMenuItem( ID_STAGEPOPUP_RENAMESTAGE, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED ); pPopupMenu->EnableMenuItem( ID_STAGEPOPUP_DELETESTAGE, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED ); pPopupMenu->EnableMenuItem( ID_STAGEPOPUP_CUT, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED ); pPopupMenu->EnableMenuItem( ID_STAGEPOPUP_COPY, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED ); } else { MaterialDoc *material = materialDocManager->GetCurrentMaterialDoc(); if( material->GetAttributeInt( nItem - 1, "stagetype" ) != MaterialDoc::STAGE_TYPE_NORMAL ) { pPopupMenu->EnableMenuItem( ID_STAGEPOPUP_RENAMESTAGE, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED ); } } MaterialDoc *material = materialDocManager->GetCurrentMaterialDoc(); if( material->FindStage( MaterialDoc::STAGE_TYPE_SPECIALMAP, "bumpmap" ) >= 0 ) { pPopupMenu->EnableMenuItem( ID_STAGEPOPUP_ADDBUMPMAP, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED ); } if( material->FindStage( MaterialDoc::STAGE_TYPE_SPECIALMAP, "diffusemap" ) >= 0 ) { pPopupMenu->EnableMenuItem( ID_STAGEPOPUP_ADDDIFFUSEMAP, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED ); } if( material->FindStage( MaterialDoc::STAGE_TYPE_SPECIALMAP, "specularmap" ) >= 0 ) { pPopupMenu->EnableMenuItem( ID_STAGEPOPUP_ADDSPECULAR, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED ); } if( materialDocManager->IsCopyStage() ) { pPopupMenu->EnableMenuItem( ID_STAGEPOPUP_PASTE, MF_BYCOMMAND | MF_ENABLED ); } else { pPopupMenu->EnableMenuItem( ID_STAGEPOPUP_PASTE, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED ); } pPopupMenu->TrackPopupMenu( TPM_LEFTALIGN | TPM_RIGHTBUTTON, pt->x, pt->y, &list ); }
void CRowListView::OnViewStateIcons() { m_bStateIcons =! m_bStateIcons; CListCtrl& ListCtrl = GetListCtrl(); if (m_bStateIcons) { ListCtrl.SetImageList(&m_StateImageList, LVSIL_STATE); ListCtrl.SetItemState(m_nCheckedItem, 0, LVIS_OVERLAYMASK); } else { ListCtrl.SetImageList(NULL,LVSIL_STATE); if (m_nCheckedItem != -1) { ListCtrl.SetItemState(m_nCheckedItem, INDEXTOOVERLAYMASK(1), LVIS_OVERLAYMASK); } } }
void CPakViewFiles::OnInitialUpdate() { CListView::OnInitialUpdate(); CListCtrl& lc = GetListCtrl(); // modify the list control's attributes DWORD dwStyle = GetWindowLong(lc.m_hWnd, GWL_STYLE); SetWindowLong(lc.m_hWnd, GWL_STYLE, (dwStyle & ~LVS_TYPEMASK) | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_REPORT | // LVS_ICON | // LVS_NOITEMDATA | LVS_SORTASCENDING); // add some headers // 1. name of entry lc.InsertColumn(0, "Name", LVCFMT_LEFT, 150, colName); // 2. size of entry lc.InsertColumn(1, "Size", LVCFMT_RIGHT, 80, colSize); // 3. type of entry lc.InsertColumn(2, "Type", LVCFMT_LEFT, 180, colType); }
int CUserView::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CListView::OnCreate(lpCreateStruct) == -1) return -1; // TODO: Add your specialized creation code here ModifyStyle(0,LVS_REPORT); CListCtrl &theCtrl=GetListCtrl(); theCtrl.InsertColumn(0,"计算机名称", LVCFMT_LEFT,100); theCtrl.InsertColumn(1,"IP地址", LVCFMT_LEFT,100); theCtrl.InsertColumn(2,"签名", LVCFMT_LEFT,100); //检测HeartBeat的定时器 SetTimer(2,1000*20,NULL); return 0; }
void CTblInfoView::OnInitialUpdate() { CListView::OnInitialUpdate(); //设置TreeView Style LONG lOld = GetWindowLong(GetSafeHwnd(), GWL_STYLE); SetWindowLong(GetSafeHwnd(), GWL_STYLE, lOld | WS_CHILDWINDOW| WS_VISIBLE | WS_CLIPCHILDREN | WS_HSCROLL | WS_VSCROLL |WS_TABSTOP | LVS_REPORT | LVS_SHAREIMAGELISTS | LVS_ALIGNLEFT | LVS_NOSORTHEADER | LVS_EX_FULLROWSELECT ); GetListCtrl().SetExtendedStyle(WS_EX_LEFT|WS_EX_RIGHTSCROLLBAR|WS_EX_CLIENTEDGE |LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES ); }
int ValueView::OnCreate(LPCREATESTRUCT lpcs) { if (CListView::OnCreate(lpcs) == -1) return -1; CListCtrl &list = GetListCtrl(); list.SetExtendedStyle(/*LVS_EX_GRIDLINES | */LVS_EX_FULLROWSELECT); // Add the columns int ncols = sizeof(headers) / sizeof(LPCSTR); int nwidth = (lpcs->cx / ncols); for (int i = 0; i < ncols; i++) { list.InsertColumn(i, headers[i], LVCFMT_CENTER, nwidth); } OnSettingChange(0, 0); return 0; }
/** * Called when the user changes the selection in the list box. This method will notify the * property view of the change so that it can display the appropriate properties. */ void StageView::OnLvnItemchanged(NMHDR *pNMHDR, LRESULT *pResult) { LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR); if(!bDragging) { //The state has changed and changed to selected if(pNMLV->uChanged && LVIF_STATE && pNMLV->uNewState & LVIS_SELECTED) { int type = -1; if(pNMLV->iItem >= 0) { if(pNMLV->iItem == 0) type = MaterialDefManager::MATERIAL_DEF_MATERIAL; else { int stageType = currentMaterial->GetAttributeInt(pNMLV->iItem-1, "stagetype"); switch(stageType) { case MaterialDoc::STAGE_TYPE_NORMAL: type = MaterialDefManager::MATERIAL_DEF_STAGE; break; case MaterialDoc::STAGE_TYPE_SPECIALMAP: type = MaterialDefManager::MATERIAL_DEF_SPECIAL_STAGE; break; } } } m_propView->SetPropertyListType(type, pNMLV->iItem-1); } if(pNMLV->uChanged && LVIF_STATE && pNMLV->uOldState & LVIS_SELECTED && !(pNMLV->uNewState & LVIS_SELECTED)) { //This item was deselected. //If there is no item selected then clear the prop list CListCtrl& list = GetListCtrl(); POSITION pos = list.GetFirstSelectedItemPosition(); if(!pos) m_propView->SetPropertyListType(-1); } } *pResult = 0; }
LPCLIENTITEM CMyClientMainView::InsertItem(LPCLIENTITEM pItem) { //查看客户是否存在 int nItem = FindItemTitle(pItem->m_SysInfo.ID); if(nItem != -1) { //替换新套接字 LPCLIENTITEM pFindItem = (LPCLIENTITEM) GetListCtrl().GetItemData(nItem); closesocket(pFindItem->m_WorkSocket); pFindItem->m_WorkSocket = pItem->m_WorkSocket; return pFindItem; } char m_LogFileName[256] = {0}; GetModuleFileName(NULL,m_LogFileName,250); char *p = strrchr(m_LogFileName,'.'); *p = 0; strcat(m_LogFileName,".log"); char m_Name[256] = {0}; GetPrivateProfileString("客户注释",pItem->m_SysInfo.ID, pItem->m_SysInfo.m_PcName,m_Name,255,m_LogFileName); //增加新客户 LPCLIENTITEM pClientItem = new CLIENTITEM; memcpy(pClientItem,pItem,sizeof(CLIENTITEM)); if(pClientItem->m_SysInfo.m_UserName[37] == 1) { nItem = GetListCtrl().InsertItem( LVIF_IMAGE | LVIF_PARAM | LVIF_TEXT, 2, pClientItem->m_Title, INDEXTOSTATEIMAGEMASK(1), LVIS_STATEIMAGEMASK, 2,(LPARAM) pClientItem); } else { nItem = GetListCtrl().InsertItem( LVIF_IMAGE | LVIF_PARAM | LVIF_TEXT, 0, pClientItem->m_Title, INDEXTOSTATEIMAGEMASK(1), LVIS_STATEIMAGEMASK, 1,(LPARAM) pClientItem); } GetListCtrl().SetItemText(nItem,1,m_Name); int nCount = GetListCtrl().GetItemCount(); if(nCount == 1) GetListCtrl().SetItemState(nItem,LVIS_SELECTED, LVIS_SELECTED); OnResizeWnd(0,0); return pClientItem; }
/** * Rebuilds the list of stages based on the currently selected material */ void StageView::RefreshStageList() { CListCtrl& list = GetListCtrl(); POSITION pos = list.GetFirstSelectedItemPosition(); int selectedItem = -1; if(pos) selectedItem = list.GetNextSelectedItem(pos); list.DeleteAllItems(); if(currentMaterial) { //Always add the material item for the main material properties list.InsertItem(0, "Material"); SetToggleState(0, ToggleListView::TOGGLE_STATE_DISABLED); //Get the stage info int stageCount = currentMaterial->GetStageCount(); for(int i = 0; i < stageCount; i++) { const char* name = currentMaterial->GetAttribute(i, "name"); int itemNum = list.InsertItem(list.GetItemCount(), name); if(currentMaterial->IsStageEnabled(i)) { SetToggleState(itemNum, ToggleListView::TOGGLE_STATE_ON); } else { SetToggleState(itemNum, ToggleListView::TOGGLE_STATE_OFF); } } if(selectedItem < 0) { //Select the material list.SetItemState(0, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED); } else { list.SetItemState(selectedItem, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED); } } }
/** * Called as the window is being created and initializes icons and window styles */ int ToggleListView::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CListView::OnCreate(lpCreateStruct) == -1) return -1; CListCtrl& list = GetListCtrl(); list.SetExtendedStyle(LVS_EX_FULLROWSELECT); //Turn off the horizontal scroll bar //Todo: Figure out why the damn scroll bar pops up list.ModifyStyle(WS_HSCROLL, 0L); //Insert the one column LVCOLUMN col; col.mask = 0; list.InsertColumn(0, &col); SetToggleIcons(); return 0; }
//ntype // 1 显示组下所有类型的keywords // 2 显示某种类型的keywords void CShortcutBarView::ShowListContent(int nType, char* szGroupName) { if (nType == 1) { sloMysqlAgent::GetInstance()->GetKeyWordsFromGroupName(szGroupName); }else if (nType == 2) { sloMysqlAgent::GetInstance()->GetKeyWordsFromTypeName(szGroupName); } CListCtrl& rList = GetListCtrl(); //清空列表 rList.DeleteAllItems(); int nCount = sloMysqlAgent::GetInstance()->m_KeywordsList.size(); for(int i = 0; i < nCount; i++) { rList.InsertItem(i, NULL, 0); rList.SetItemText(i, 2, sloMysqlAgent::GetInstance()->m_KeywordsList[i].szKeyName); rList.SetItemText(i, 3, sloMysqlAgent::GetInstance()->m_KeywordsList[i].szDate); } }
void CBioAPISampleMFCView::OnUpdate(CView* /*pSender*/, LPARAM /*lHint*/, CObject* /*pHint*/) { std::vector<CBioAPISampleMFCDoc::BIR>::iterator I; CListCtrl& ListCtrl = GetListCtrl(); CBioAPISampleMFCDoc* pDoc = GetDocument(); int i = 0; pDoc->Lock(); I = pDoc->m_BIRs.begin(); ListCtrl.DeleteAllItems(); i=0; while (I != pDoc->m_BIRs.end() ) { LV_ITEM lvi; memset(&lvi, 0, sizeof(lvi)); lvi.mask = LVIF_TEXT | LVIF_STATE; lvi.iItem = i; lvi.iSubItem = 0; lvi.pszText = (LPTSTR)(LPCTSTR)I->Name; lvi.stateMask = LVIS_STATEIMAGEMASK; lvi.state = INDEXTOSTATEIMAGEMASK(1); ListCtrl.InsertItem(&lvi); // name ListCtrl.SetItemText(i, 1, I->Path); // original path ListCtrl.SetItemText(i, 2, BIR_GetPurpose(I->bir)); // purpose ListCtrl.SetItemText(i, 3, BIR_GetType(I->bir)); // type ListCtrl.SetItemText(i, 4, BIR_GetFormat(I->bir)); // format ListCtrl.SetItemText(i, 5, BIR_GetDataType(I->bir)); // data type ListCtrl.SetItemText(i, 6, BIR_GetState(*I)); // state ListCtrl.SetCheck(i, I->selected); I++; i++; } pDoc->Unlock(); }
// @pymethod int|PyCListCtrl|GetNextItem|Searches for a list view item with specified properties and with specified relationship to a given item. PyObject *PyCListCtrl_GetNextItem( PyObject *self, PyObject *args ) { int item, flags; if (!PyArg_ParseTuple( args, "ii:GetNextItem", &item, // @pyparm int|item||Index of the item to begin the searching with, or -1 to find the first item that matches the specified flags. The specified item itself is excluded from the search. &flags)) // @pyparm int|flags||Geometric relation of the requested item to the specified item, // and the state of the requested item. The geometric relation can be one of these values: // <nl>LVNI_ABOVE<nl>LVNI_ALL<nl>LVNI_BELOW<nl>LVNI_TOLEFT<nl>LVNI_TORIGHT<nl> // The state can be zero, or it can be one or more of these values: // <nl>LVNI_DROPHILITED<nl>LVNI_FOCUSED<nl>LVNI_HIDDEN<nl>LVNI_MARKED<nl>LVNI_SELECTED<nl> // If an item does not have all of the specified state flags set, the search continues with the next item. return NULL; CListCtrl *pList = GetListCtrl(self); if (!pList) return NULL; GUI_BGN_SAVE; int rc = pList->GetNextItem(item, flags); GUI_END_SAVE; if (rc==(int)-1) RETURN_ERR("GetNextItem failed"); return Py_BuildValue("i",rc); // @rdesc Returns an integer index, or raises a win32ui.error exception if not item can be found. }