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

上次记录到了上线列表条目设计和日志列表条目设计,这次记录条目会随着窗口的大小来改变大小。

我们先来完成上线设计,首先声明列的总宽度:

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));        //设置当前的宽度

最后,编译运行。我们来看看结果。

原文地址:https://www.cnblogs.com/killbit/p/5093436.html