enum{ ONLINELIST_IP=0, //IP的列顺序 ONLINELIST_Proxy, //代理 ONLINELIST_COMPUTER_NAME, //计算机名/备注 ONLINELIST_OS //操作系统};
建立枚举列表条目如上,将定义放在头文件里。这样以后方便改动
建立一个函数,添加处理列表函数。
我们先来完善上线列表设计。
typedef struct //声明结构体{ char *title; //列表的名称 int nWidth; //列表的宽度}COLUMNSTRUCT;COLUMNSTRUCT g_Column_Data[] = //声明结果体数组{ { "IP", 200 }, { "计算机名/备注", 200 }, { "操作系统", 200 }, { "proxy", 200 }};int g_Column_Count=4; //列表的个数 从0开始
int CGhostDlg::InitList(void)
{ //初始化上线列表 for (int i = 0; i < g_Column_Count; i++) { m_list_oline.InsertColumn(i, g_Column_Data[i].title,LVCFMT_CENTER,g_Column_Data[i].nWidth); //以居中的方式,循环插入数据 } return 0;}
再来看InitList(void) 函数
好了。我们现在开编译运行看看什么结果。(记得在OnInitDialog()函数中调用自定义的函数)
现在上线列表设计完成了,接下来设计日志列表。
远控上线下线,都需要日志来记录或者提醒。
COLUMNSTRUCT g_Column_Data_Message[] = { { "信息类型", 68 }, { "时间", 100 }, { "信息内容", 660 }};int g_Column_Count_message=3; //消息个数3
在InitList 函数里循环插入条目。
for (int i = 0; i < g_Column_Count_message; i++) { m_list_msg.InsertColumn(i, g_Column_Data_Message[i].title,LVCFMT_CENTER,g_Column_Data_Message[i].nWidth); }
编译运行,看看结果。
最后代码完成如下: