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

列表设计思路:
(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);

 

完成,最后编译看效果。

 

posted @ 2016-01-01 16:50  杀死比特  阅读(305)  评论(0编辑  收藏  举报