pre{
line-height:1;
color:#d1653c;
background-color:#000000;
font-size:16px;}.sysFunc{color:#566d68;font-style:italic;font-weight:bold;}
.selfFuc{color:#f3e191;}
.bool{color:#f6ac77;}
.condition{color:#5e0502;font-weight:bold;}
.key{color:#c1018f;}
.var{color:#61afba;font-style:italic;}
.Digit{color:#008000;font-weight:bold;}
.includePre{color:#3c65d1;}
.operator {color:#65ec0f;font-weight:bold;}

1  获得选中项的索引

 

    POSITION pos=m_BanjiList.GetFirstSelectedItemPosition();  
      
    if(pos==NULL)  
    {  
            AfxMessageBox(L"未选择任何项");  
            return;  
    }else{  
      
        int iIndex=m_BanjiList.GetNextSelectedItem(pos);  
      
        CString Str1;  
        CString Str2;  
      
        Str1=m_BanjiList.GetItemText(iIndex,0);  
        Str2=m_BanjiList.GetItemText(iIndex,1);  
               }  

2 NM_CLICK 单击事件中获得选中行信息

    

 

        OnNMClickListWenti(NMHDR *pNMHDR, LRESULT *pResult)  
        {  
            LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);  
            // TODO: 在此添加控件通知处理程序代码  
            *pResult = 0;  
            NM_LISTVIEW *info=(NM_LISTVIEW*)pNMHDR;  
          
          
          
            int nIndex=info->iItem;  //选中的行数  
          
            if (nIndex==-1) //未选中 则默认最后一个  
            {  
                nIndex=m_BanjiList.GetItemCount()-1;  
          
                if (nIndex==-1) //如果为-1,则说明 还未添加任何项目  
                    return;  
                else  
                    m_BanjiList.SetItemState(nIndex,LVIS_SELECTED,LVIS_SELECTED);  
          
            }  
          
          
            CString xuehaoStr=m_XueShengList.GetItemText(nIndex,0); //选中行的第一列的文字  
          
          
          
        }  

3 选中某行

 

    plistctrl->SetItemState(index,LVIS_SELECTED,LVIS_SELECTED);//选中一行  
      
    plistctrl->SetItemState(index,0,LVIS_SELECTED);//取消一行  
      
    DWORD style=plistctrl->GetItemState(index,LVIS_SELECTED);//获得选中信息  

4 获得行数

 

    List.GetItemCount();  

获得某项第几列中的文字

 

    CString str=List.GetItemText(nIndex,0);  //第nIndex项(以0为基点) 第0列中的文字  

5 获得列数

 

    extern CListCtrl* pmyListCtrl;  
      
    int nColumnCount = pmyListCtrl->GetHeaderCtrl()->GetItemCount();  
      
    // Delete all of the columns.  
    for (int i=0;i < nColumnCount;i++)  
    {  
       pmyListCtrl->DeleteColumn(0);  
    }  

删除所有项,删除所有列

 

    m_BanjiList.m_Header.m_HChar.clear();   //删除VECTOR 列标题  

 

    m_BanjiList.DeleteAllItems();  
      
    while(m_BanjiList.DeleteColumn(0))  
    {  
        m_BanjiList.DeleteColumn(0);  
    }  

6 自绘时获得是否高亮等信息

是否高亮

 

    LVITEM lvi = {0};   
    lvi.mask = LVIF_STATE;//|LVIF_IMAGE;   
    lvi.stateMask = LVIS_FOCUSED | LVIS_SELECTED ;   
    lvi.iItem = lpDIS->itemID;   
    BOOL bGet = GetItem(&lvi);   
      
      
      
    BOOL bHighlight =((lvi.state & LVIS_DROPHILITED)||((lvi.state & LVIS_SELECTED) &&   
        ((GetFocus() == this)|| (GetStyle() & LVS_SHOWSELALWAYS))));   

是否单击

 

    CRect rcBack = lpDIS->rcItem;  
    pDC->SetBkMode(TRANSPARENT);  
      
    if(this->GetItemState(lvi.iItem, CDIS_SELECTED))                             //绘制选中行颜色,单击颜色。  
    {   
        CRect  itemBackRect;  
        itemBackRect=rcBack;      
           pDC->FillRect(itemBackRect, &CBrush(RGB(240,254,229)));    
        itemBackRect.left += 1;  
        itemBackRect.top += 2;  
        itemBackRect.right -=1;  
        itemBackRect.bottom -=2;  
        pDC->FillRect(itemBackRect, &CBrush(RGB(191,225,128)));    
        pDC->SetTextColor(RGB(0,0,0));     
    }  

7 获得列名

 

    LVCOLUMN   lvColumn;     
    TCHAR strChar[256];  
    lvColumn.pszText=strChar;     
    lvColumn.cchTextMax=256 ;  
    lvColumn.mask   = LVCF_TEXT;  
    GetColumn(0, &lvColumn);  
    if(CString(lvColumn.pszText)!=_T(""))   //如果首列有字,那么就不再绘制checkbox  
    {  
        return -1;  
    }  

本文使用 书画小说软件 发布,内容与软件无关,书画小说软件 更惬意的读、更舒心的写、更轻松的发布。

 

CListCtrl总结.xml的更多相关文章

  1. (转)C++ CListCtrl使用技巧的摘抄

    转:http://blog.csdn.net/sanshao27/article/details/1888315 1. CListCtrl 风格 LVS_ICON: 为每个item显示大图标      ...

  2. XStream将java对象转换为xml时,对象字段中的下划线“_”,转换后变成了两个的解决办法

            在前几天的一个项目中,由于数据库字段的命名原因 其中有两项:一项叫做"市场价格"一项叫做"商店价格" 为了便于区分,遂分别将其命名为market ...

  3. .NET Core采用的全新配置系统[9]: 为什么针对XML的支持不够好?如何改进?

    物理文件是我们最常用到的原始配置的载体,最佳的配置文件格式主要由三种,它们分别是JSON.XML和INI,对应的配置源类型分别是JsonConfigurationSource.XmlConfigura ...

  4. WebApi接口 - 响应输出xml和json

    格式化数据这东西,主要看需要的运用场景,今天和大家分享的是webapi格式化数据,这里面的例子主要是输出json和xml的格式数据,测试用例很接近实际常用情况:希望大家喜欢,也希望各位多多扫码支持和点 ...

  5. XML技术之DOM4J解析器

    由于DOM技术的解析,存在很多缺陷,比如内存溢出,解析速度慢等问题,所以就出现了DOM4J解析技术,DOM4J技术的出现大大改进了DOM解析技术的缺陷. 使用DOM4J技术解析XML文件的步骤? pu ...

  6. UWP开发之Mvvmlight实践六:MissingMetadataException解决办法(.Net Native下Default.rd.xml配置问题)

    最近完成一款UWP应用,在手机端测试发布版(Release)的时候应用莫名奇妙的强行关闭,而同样的应用包在PC端一点问题都没有,而且Debug版在两个平台都没有问题,唯独手机的Release版有问题. ...

  7. PHP中遍历XML之SimpleXML

    简单来讲述一些XML吧,XML是可扩展标记语言,是一种用于标记电子文件使其具有结构性的标记语言.XML是当今用于传输数据的两大工具之一,另外一个是json. 我们在PHP中使用XML也是用来传输数据, ...

  8. Asp.Net 操作XML文件的增删改查 利用GridView

    不废话,直接上如何利用Asp.NET操作XML文件,并对其属性进行修改,刚开始的时候,是打算使用JS来控制生成XML文件的,但是最后却是无法创建文件,读取文件则没有使用了 index.aspx 文件 ...

  9. Mybatis XML配置

    Mybatis常用带有禁用缓存的XML配置 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE ...

随机推荐

  1. iOS 7 如何关闭已打开的应用(App)

    刚升级了 iOS 7,感觉不太会用了. 在多任务状态下,看着一个个已被打开的应用,不知道如何关闭了. 问了下朋友才知道,在多任务状态下,将对应的应用 向上划 就行. 听说,和 Android 一样的 ...

  2. PostgreSQL删除表

    PostgreSQL的DROP TABLE语句是用来删除表定义及其所有相关的数据表的索引,规则,触发器和约束. 必须使用此命令时要小心,因为一旦一个表被删除表中提供的所有信息也将被永远失去了. 语法: ...

  3. Jquery-json

    第三方插件: jquery.json-2.4.js Jquery-json 是 jQuery 的一个插件,可轻松实现对象和 JSON 字符串之间的转换.可序列化 JavaScript 对象.数值.字符 ...

  4. Android开源库--PhotoView图片查看

    如果说我比别人看得更远些,那是因为我站在了巨人的肩上. github地址:https://github.com/chrisbanes/PhotoView 介绍 在一般的应用中,总会遇到查看图片的功能, ...

  5. R语言实战读书笔记(二)创建数据集

    2.2.2 矩阵 matrix(vector,nrow,ncol,byrow,dimnames,char_vector_rownames,char_vector_colnames) 其中: byrow ...

  6. 51nod1486 大大走格子

    容斥定理+dp...妈呀#1rp耗尽了难怪最近那么衰... #include<cstdio> #include<cstring> #include<cctype> ...

  7. VC++的菜单控制和自绘菜单

    菜单控制为什么即使调用EnableMenuItem菜单项后,菜单项还处于禁止状态 需要将CFrameWnd:: m_bAutomenuEnable设置为FALSE,如果该数据成员为TRUE(缺省值), ...

  8. Swift 2.0 : 'enumerate' is unavailable: call the 'enumerate()' method on the sequence

    Swift 2.0 : 'enumerate' is unavailable: call the 'enumerate()' method on the sequence 如下代码: for (ind ...

  9. hihoCoder #1174 : 拓扑排序·一 (判断循环图)

    G++ 261ms 13MB 题意: 给出n门课程的修读所需要的前置课程的关系,按理说应该是个拓扑图,但是因为某些原因导致了混乱,所以有可能不是一个拓扑图.现在的问题是,判断该图是否为一个拓扑图(即无 ...

  10. linux vim 配置文件(高亮+自动缩进+行号+折叠+优化)

    点评:将一下代码copy到 用户目录下 新建文件为 .vimrc保存即可生效 如果想所有用户生效 请修改 /etc/vimrc (建议先cp一份)"===================== ...