zoukankan      html  css  js  c++  java
  • CListCtrl 使用笔记

    1. 如何获取和设置某一行的选中状态? 
        1) 获取选中状态
            int state = listCtrl.GetItemState(item, LVIS_SELECTED);
            if (state & LVIS_SELECTED){
                // 选中
            }
            else{
                // 为选中
            }

        2) 设置选中状态
            取消选中: listCtrl.SetItemState(item, 0, LVIS_SELECTED);
            设置选中: listCtrl.SetItemState(item, 1, LVIS_SELECTED);

    2. 如何获取所有选中的行? 
        方式一 :
            POSITION pos = listCtrl.GetFirstSelectedItemPosition();
            while (pos){
                int index = listCtrl.GetNextSelectedItem(pos);
                // do something
            }
        方式二 :
            int item = -1;
            while ( -1 != (item = GetNextItem(item, LVIS_SELECTED)) ){
                // do something with item
            }

    3. 如何使用EditLabel ? 
        1) 创建控件的时候应该设置 : LVS_EDITLABELS 风格
        2) 接收Notify消息:LVN_BEGINLABELEDIT, 用以处理是否开始编辑指定条目。这个消息是可选的
           一个实现可能是这个样子
            void CMyView::OnBeginLabelEdit(NMHDR *pNMHDR, LRESULT *pResult)
            {
                NMLVDISPINFO *pNmlvDispInfo = reinterpret_cast<NMLVDISPINFO*>(pNMHDR);
                int item = pNmlvDispInfo->item.iItem; // 编辑框所在的条目
                if (item < 0) *pResult = 1;
            }
        3) 接受Notify消息:LVN_ENDLABELEDIT, 用以处理编辑完成事件,在这个时间里我们可以获取编辑框的内容
            一个可能的实现:
            void CMyView::OnEndLabelEdit(NMHDR *pNMHDR, LRESULT *pResult)
            {
                NMLVDISPINFO* pLVDI = reinterpret_cast<NMLVDISPINFO*>(pNMHDR);

                if(pLVDI->item.pszText!=NULL){ //判断是否已经取消取消编辑
                    // 将编辑行的第一列设置为编辑框中的字符串
                    listCtrl.SetItemText(pLVDI->item.iItem, 0, pLVDI->item.pszText);
                }

                *pResult = 0;
            }
  • 相关阅读:
    OpenGL红宝书例子2.2 uniform变量的使用
    感冒了。。。
    OpenGL红宝书第一个例子:绘制两个三角形
    从今日起,我会把OpenGL红宝书上的例子用完整的代码形式写在我的博客中,
    win8.1下安装ubuntu 14.0 4LTS
    windows下编译Android版本的boost库文件
    cocos2d-x中使用tinyxml遇到的问题及解决
    为申请texturepacker用
    安装MSYS2过程遇到的问题及解决记录
    Lua 基础 -- 学习笔记
  • 原文地址:https://www.cnblogs.com/hdtianfu/p/2783268.html
Copyright © 2011-2022 走看看