学习远控界面设计二: 程序界面列表处理

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);
    }

编译运行,看看结果。

学习远控界面设计二: 程序界面列表处理

最后代码完成如下:

学习远控界面设计二: 程序界面列表处理

学习远控界面设计二: 程序界面列表处理