当前位置: 代码迷 >> 编程 >> 【遥控编写04】客户端界面的设计和编写-列表中添加条目
  详细解决方案

【遥控编写04】客户端界面的设计和编写-列表中添加条目

热度:2080   发布时间:2013-02-26 00:00:00.0
【远控编写04】客户端界面的设计和编写--列表中添加条目
1.CListCtrl    InsertItem  插入条目   查看MSDN
              int InsertItem(                         int nItem,              //插入哪一行                         LPCTSTR lpszItem        //该行0列显示的字符               );              SetItemText         设置哪个列的字符              BOOL SetItemText(                          int nItem,                   //改动那个行                          int nSubItem,                //该行中那个子列                          LPCTSTR lpszText             //要设置的字符              );

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

3.上线列表添加处理:

// add column into List Controlvoid CPCRemoteDlg::AddList(CString strIP, CString strAddr, CString strPCName, CString strOS, CString strCPU, CString strVideo, CString strPing){	m_CList_Online.InsertItem(0,strIP);	//默认为0行  这样所有插入的新列都在最上面    m_CList_Online.SetItemText(0,ONLINELIST_ADDR,strAddr);//设置列的显示字符   这里 ONLINELIST_ADDR等 为第二节课中的枚举类型 用这样的方法	m_CList_Online.SetItemText(0,ONLINELIST_COMPUTER_NAME,strPCName); //解决问题会避免以后扩展时的冲突	m_CList_Online.SetItemText(0,ONLINELIST_OS,strOS); 	m_CList_Online.SetItemText(0,ONLINELIST_CPU,strCPU);	m_CList_Online.SetItemText(0,ONLINELIST_VIDEO,strVideo);	m_CList_Online.SetItemText(0,ONLINELIST_PING,strPing); }

4.添加日志消息的处理:

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


5.添加伪上线,和日志的测试代码,所以要加入一个用于测试的函数:

// just is a test funtionvoid CPCRemoteDlg::Test(void){	AddList("192.168.0.1","本机局域网","Pinggle","Windows XP","2.0GHZ","有","12323");	ShowMessage(true,"软件初始化成功...");}


  然后在OnInitDialog  中调用: Test();


6.点击时整个行都是选中状态
     InitList():中加入代码:
       m_CList_Online.SetExtendedStyle(LVS_EX_FULLROWSELECT);
       m_CList_Message.SetExtendedStyle(LVS_EX_FULLROWSELECT);

 

7.效果截图:

  相关解决方案