• 学习远控界面设计四: 列表中添加条目


    列表设计思路:
    (1)服务端上线后要显示在列表中,这样有一个统一的函数来处理会使代码更加简洁。
    (2)消息显示分为成功失败两种,还要在其中显示消息产生的时间,这样也应该有一个统一的函数来处理。

    我们先来添加一个函数:

    void CGhostDlg::AddList(CString strIP, CString strPCName, CString strOS, CString strProxy)
    {
        m_list_oline.InsertItem(0,strIP);           //默认为0行  这样所有插入的新列都在最上面
        m_list_oline.SetItemText(0,ONLINELIST_COMPUTER_NAME,strPCName); //解决问题会避免以后扩展时的冲突
        m_list_oline.SetItemText(0,ONLINELIST_OS,strOS);  //依次插入字符。索引分别为0,1,2,3
        m_list_oline.SetItemText(0,ONLINELIST_Proxy,strProxy); 
    }

    我们来测试一下伪上线:

    接下来设计日志条目:

    void CGhostDlg::ShowMessage(bool bIsOK, CString strMsg)
    {
        CString strIsOK,strTime;
        CTime t=CTime::GetCurrentTime();
        strTime=t.Format("%H:%M:%S");
        if (bIsOK)
        {
            strIsOK="执行成功";
        }else{
            strIsOK="执行失败";
        }
        m_list_msg.InsertItem(0,strIsOK);
        m_list_msg.SetItemText(0,1,strTime);
        m_list_msg.SetItemText(0,2,strMsg);
    }

    将函数运用到伪上线函数里去。

    那我们还有一个问题,现在列表框中的数据只能单选,不能选择一行,那如何做到选择一行呢?

    来到InitList()中插入代码:

    m_list_oline.SetExtendedStyle(LVS_EX_FULLROWSELECT);
    
    m_list_msg.SetExtendedStyle(LVS_EX_FULLROWSELECT);

    完成,最后编译看效果。

  • 相关阅读:
    物联网习题总结
    orm.TextField undefined (type orm.Ormer has no field or method TextField)
    中级软件设计师下午试题(百度文库 )
    34-Digit factorials
    解决[INS-35075] 已存在具有指定标识符的数据库实例
    PE10 Summation of primes
    构建之发阅读笔记02
    软件工程概论第十二周学习进度表
    四则运算2(改进版)
    构建之法阅读笔记01
  • 原文地址:https://www.cnblogs.com/killbit/p/5093456.html
Copyright © 2020-2023  润新知