• 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;
            }
  • 相关阅读:
    【Jmeter】分布式并发测试
    【博客迁移】
    设置超出范围有滚动条
    table中td,th不能设置margin
    文字和input对不齐怎么办
    改变radio单选按钮的样式
    transition的用法以及animation的用法
    选择后代元素或点击元素的方法
    如何简单实用hammer
    添加aimate动画
  • 原文地址:https://www.cnblogs.com/hdtianfu/p/2783268.html
Copyright © 2020-2023  润新知