如何将struct 内容添加到TREE中!菜鸟试飞请多关照!

ko321 2004-12-22 09:53:11
问题描述如下:

这是我定义的struct
struct Room
{
int PlayerCount; //玩家人数
int MaxPlayerNum; //最大容量
int CurPlayerNum; //当前人数
int nImage;
CString GameClass; //游戏名称
CString RoomClass; //房间类别
CString RoomName; //房间号码
CString FolderName; //文件夹名称


};
这里我将struct 赋值并保存到CArray中。
typedef CArray<Room, Room&> CArrayRoom;
typedef CArray<CArrayRoom*,CArrayRoom *> Datas;
CArrayRoom * pAry = NULL;
void TestCarray(void)
{

Datas MyDatas;
pAry = new CArrayRoom;
Room t_Room;

// 加入第一个数据
t_Room.PlayerCount = 4;
t_Room.MaxPlayerNum =80;
t_Room.CurPlayerNum =44;
t_Room.GameClass ="四国";
t_Room.RoomClass ="训练1";
t_Room.RoomName="房间1";
t_Room.FolderName ="Game";
pAry->Add(t_Room);
t_Room.PlayerCount = 4;
t_Room.MaxPlayerNum =80;
t_Room.CurPlayerNum =40;
t_Room.GameClass ="四国";
t_Room.RoomClass ="战场1";
t_Room.RoomName="房间1";
t_Room.FolderName ="Game";
pAry->Add(t_Room);
t_Room.PlayerCount = 4;
t_Room.MaxPlayerNum =80;
t_Room.CurPlayerNum =20;
t_Room.GameClass ="扑克";
t_Room.RoomClass ="战场2";
t_Room.RoomName="房间1";
t_Room.FolderName ="Game";
pAry->Add(t_Room);
这里我自己试着做了一下添加到树中:
for (int i=0;i<pAry->GetSize();i++)
{
Room & tRoom=pAry->ElementAt(i);
HTREEITEM h_root=m_Tree.InsertItem(tRoom.GameClass);
HTREEITEM h_1=m_Tree.InsertItem (tRoom.RoomClass,1,1,h_root,TVI_SORT);
HTREEITEM h_11=m_Tree.InsertItem (tRoom.RoomName ,h_1);

}
我的问题:
第一:象我前面定义了两个“四国”的字段,就会在树中显示两个四国在同一级别,而我的想法是这样。
训练----房间1
四国
战场----房间1
请问如何实现?
第二:或者说我如何能把定义好的数据让它显示到树中呢!
第三:玩家人数我又如何显示到树中呢?

各位高手可以看出,我想做个游戏大厅的界面类似QQ,联众那种,请大家多给一些建议给我!
...全文
146 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ko321 2004-12-28
  • 打赏
  • 举报
回复
谢谢 楼上!还是不太明白啊!
ko321 2004-12-24
  • 打赏
  • 举报
回复
高手帮忙啊!
DentistryDoctor 2004-12-24
  • 打赏
  • 举报
回复
将其指针作为ItemData.
somedummy 2004-12-22
  • 打赏
  • 举报
回复
这个不是有人发过了吗?现在很流行做这个?

这些都是需要你添加代码的地方。你可以添加一个数据成员来指示这个四国到底是哪个级别的成员,然后根据这个数据成员的数值来判断到底这个四国应该被添加到哪里。

TreeView应该可以支持多级别的。添加的时候通过InsertItem的重载版本来添加(应该是
HTREEITEM InsertItem( LPCTSTR lpszItem, HTREEITEM hParent = TVI_ROOT, HTREEITEM hInsertAfter = TVI_LAST );
这个版本的,我从MSDN for VS6里面找的,可能会有一点出入)

显示人数可以使用动态刷新的方法来做,让客户端负责定时从服务器端得到人数,然后立即刷新。

7,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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