高分求 表格的实现方法

showjancn 2006-01-19 05:11:21
在VC中怎样让类似下面的表格:

-----------
A | 1 | a |
----------------------
A | 1 | b |
----------------------
A | 2 | c |
----------------------

显示成:
-------------------------
A | 1 |a |
| |-----|
| |b |
|-------------------
| 2 | c |
-----------------------
谢谢!!!
...全文
114 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
折腾_苏州 2006-01-20
  • 打赏
  • 举报
回复
恩,简单写了一个小例子,希望可以从中改进。
#include <AFX.h>
#include <iostream.h>

void convert(CStringList *StrList)
{
POSITION pos,pos1,pos2;
CString str,str1,str2;
char flag[40]; // 标记(树根)
int i, j, k;
pos = StrList->GetHeadPosition();
StrList->GetNext(pos);
StrList->GetNext(pos);
StrList->GetNext(pos); // 跳过三行
memset(flag,0,40);
while(pos)
{
pos1 = pos2 = pos;
str = StrList->GetAt(pos);//当前行
StrList->GetPrev(pos1);
str1 = StrList->GetAt(pos1);//上一行
StrList->GetPrev(pos2);
StrList->GetPrev(pos2);
str2 = StrList->GetAt(pos2);//上上一行
for(i=0;i<str.GetLength();i++)
{
if((str.GetAt(i) != ' ')&&(str.GetAt(i) != '|'))
{
if(str.GetAt(i) == str2.GetAt(i))
{
flag[i] = str.GetAt(i);
str.SetAt(i,' ');
k = str2.Find('|',i);
for(j=0;j<k;j++)if(str1.GetAt(j)!='|')str1.SetAt(j,' ');
str1.SetAt(k,'|');
StrList->SetAt(pos,str);
StrList->SetAt(pos1,str1);
}
else if((str2.GetAt(i) == ' ')&&(flag[i] == str.GetAt(i)))
{
str.SetAt(i,' ');
k = str2.Find('|',i);
for(j=0;j<k;j++)if(str1.GetAt(j)!='|')str1.SetAt(j,' ');
str1.SetAt(k,'|');
StrList->SetAt(pos,str);
StrList->SetAt(pos1,str1);
}
else
{
flag[i] = 0;
break;
}
}
}
StrList->GetNext(pos);
StrList->GetNext(pos); // 跳一行
}
}
void main()
{
CStringList *strlist = new CStringList;
POSITION pos;
pos = 0;
pos = strlist->InsertAfter(pos,"--------------------------");
pos = strlist->InsertAfter(pos,"A | 1 | a |");
pos = strlist->InsertAfter(pos,"--------------------------");
pos = strlist->InsertAfter(pos,"A | 1 | b |");
pos = strlist->InsertAfter(pos,"--------------------------");
pos = strlist->InsertAfter(pos,"A | 2 | c |");
pos = strlist->InsertAfter(pos,"--------------------------");
pos = strlist->InsertAfter(pos,"B | 3 | a |");
pos = strlist->InsertAfter(pos,"--------------------------");
pos = strlist->InsertAfter(pos,"B | 3 | b |");
pos = strlist->InsertAfter(pos,"--------------------------");
pos = strlist->InsertAfter(pos,"B | 3 | c |");
pos = strlist->InsertAfter(pos,"--------------------------");
pos = strlist->InsertAfter(pos,"B | 4 | c |");
pos = strlist->InsertAfter(pos,"--------------------------");
pos = strlist->InsertAfter(pos,"B | 5 | c |");
pos = strlist->InsertAfter(pos,"--------------------------");
convert(strlist);
pos = strlist->GetHeadPosition();
while(pos)
{
cout<<strlist->GetAt(pos)<<'\n';
strlist->GetNext(pos);
}
delete strlist;
}
showjancn 2006-01-20
  • 打赏
  • 举报
回复
其实就是要把树中的数据,导到表格中来,首先,不可能是自已来画,因为这只是表面的显示,其实内部还有很多操作,一定要是支持这种显示的控件。
countryboy 2006-01-19
  • 打赏
  • 举报
回复
学习。。。。。。
eleek 2006-01-19
  • 打赏
  • 举报
回复
其实就是一行一行的画
画下面一行的内容的适合,要记得好上面一行的数据比较,如果相等就不画了,如果不等就画出来相应的边框和内容。
thisisll 2006-01-19
  • 打赏
  • 举报
回复
这个挺象树的
CTreeCtrl
bobob 2006-01-19
  • 打赏
  • 举报
回复
第一个表格是怎么显示的?有容器还是画出来的?
道理是一样的
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于springboot+jpa实现java后台api接口,点餐系统源码+项目说明(高分毕设).zip # sell springboot实战入门,springboot+jpa实现java后台api接口 # 实现功能 - 1 购物车功能 - 2 java后台api接口 - 3 简单的电商订单后台 - 4 javaweb网站 - 5 微信小游戏体验 #### #### 项目中的sql.txt文档中是创建对应表格所需的sql语句 ## api接口说明文档 #### 一,获取pv访问量 - url:https://30paotui.com/pv/2048/list - 请方式:get - 返回的json数据如下 ``` { "code": 100, "msg": "成功", "data": 342 } ``` # 获取热销外卖产品 - url:https://30paotui.com/buyer/product/list - 请方式:get - 返回数据格式如下 ``` { "code": 100, "msg": "成功", "data": [ { "name": "热销", "type": 1, "foods": [ { "id": "5", "name": "奶茶", "price": 8, "desc": "奶茶妹妹嫁给了刘强东", "icon": null, "createTime": 1520823301000 } ] }, { "name": "包子类", "type": 3, "foods": [ { "id": "3", "name": "包子", "price": 4, "desc": "包子好吃", "icon": null, "createTime": 1513481102000 }, { "id": "4", "name": "蟹黄包", "price": 6, "desc": "蟹黄包比较贵", "icon": null, "createTime": 1513481642000 } ] } ] } ```
该项目是个人高分毕业设计项目源码,已获导师指导认可通过,都经过严格调试,确保可以运行!放心下载使用。 基于微信小程序的专利服务系统是为了方便用户获取专利信息、办理专利相关业务而开发的小程序,采用SSM框架实现后端服务。以下是系统的设计与实现描述: 微信小程序前端: 用户可以通过微信小程序浏览专利信息,包括专利申请流程、费用标准、法律法规等内容。 提供专利查询功能,用户可以根据关键词、申请号等条件查询专利信息,并查看专利的基本信息和状态。 实现在线申请功能,用户可以填写专利申请表格并提交申请,系统将自动处理申请流程并生成申请号。 提供在线支付功能,用户可以选择支付方式完成相关费用的缴纳,支持微信支付、支付宝等多种支付方式。 SSM框架后端: 使用SSM框架搭建后端服务,Spring提供依赖注入和控制反转的特性,Spring MVC处理前端请,MyBatis进行持久层数据访问。 利用Spring框架实现了业务逻辑,包括专利信息的查询、申请流程的处理、支付功能的实现等。 结合Spring MVC实现了前后端数据交互和请处理,实现了用户请的分发和处理。 利用MyBatis框架与数据库进行交互,实现了专利信息的存储和查询功能,保证了系统的数据一致性和完整性。 专利服务功能: 用户可以通过微信小程序浏览专利信息,了解专利相关的法律法规和申请流程。 提供专利查询功能,用户可以根据关键词、申请号等条件查询专利信息,方便用户获取所需信息。 实现在线申请功能,用户可以填写专利申请表格并提交申请,系统将自动处理申请流程,提高了办理效率。 提供在线支付功能,用户可以选择支付方式完成相关费用的缴纳,支持微信支付、支付宝等多种支付方式,方便用户完成相关支付操作。 通过以上功能的实现,基于微信小程序的专利服务系统基于SSM框架为用户提供了便捷、高效、安全的专利服务,提升了用户的体验和满意度。

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧