上次记录到了上线列表条目设计和日志列表条目设计,这次记录条目会随着窗口的大小来改变大小。
我们先来完成上线设计,首先声明列的总宽度:
int g_Column_Online_Width=0; //列总宽度
然后我们来到InitList(void)函数。
g_Column_Online_Width+=g_Column_Data[i].nWidth;
这样就得到了总宽度。
来到函数:OnSize(UINT nType, int cx, int cy)
double dcx=cx; //对话框的总宽度 for(int i=0;i<g_Column_Online_Count;i++){ //遍历每一个列 double dd=g_Column_Online_Data[i].nWidth; //得到当前列的宽度 dd/=g_Column_Online_Width; //看一看当前宽度占总长度的几分之几 dd*=dcx; //用原来的长度乘以所占的几分之几得到当前的宽度 int lenth=dd; //转换为int 类型 m_CList_Online.SetColumnWidth(i,(lenth)); //设置当前的宽度
我们来编译运行看结果。
上线的条目已经会随着我们窗口大小来改变了。接下来完善日志条目。
同样也声明日志列表总宽度:
int g_Column_Message_Width=0; //列总宽度
for(int i=0;i<g_Column_Count_message;i++){ //遍历每一个列 double dd=g_Column_Data_Message[i].nWidth; //得到当前列的宽度 dd/=g_Column_Online_Width; //看一看当前宽度占总长度的几分之几 dd*=dcx; //用原来的长度乘以所占的几分之几得到当前的宽度 int lenth=dd; //转换为int 类型 m_list_msg.SetColumnWidth(i,(lenth)); //设置当前的宽度
最后,编译运行。我们来看看结果。