自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (2)
  • 收藏
  • 关注

转载 在vb中使用Iphlpapi.dll获取网络信息 第五章 结束语

※==================================================================※本连载文章说明:※1、连载首发于《软件报》(http://www.sweek.com)2006年21期(2006年5月22日);※2、此次网上连载采用的是原稿件结构,内容与《软件报》发表略有不同;※3、谢绝除《软件报》及其相关刊物之外的传统媒体部分或全部转载;※4

2010-05-18 10:40:00 402

转载 在vb中使用Iphlpapi.dll获取网络信息 第四章 第四节 实例二:探测到某个IP地址经过的路由列表

※==================================================================※本连载文章说明:※1、连载首发于《软件报》(http://www.sweek.com)2006年21期(2006年5月22日);※2、此次网上连载采用的是原稿件结构,内容与《软件报》发表略有不同;※3、谢绝除《软件报》及其相关刊物之外的传统媒体部分或全部转载;※4

2010-05-18 10:39:00 460

转载 在vb中使用Iphlpapi.dll获取网络信息 第四章 第三节 实例一:网络数据流量图

※==================================================================※本连载文章说明:※1、连载首发于《软件报》(http://www.sweek.com)2006年21期(2006年5月22日);※2、此次网上连载采用的是原稿件结构,内容与《软件报》发表略有不同;※3、谢绝除《软件报》及其相关刊物之外的传统媒体部分或全部转载;※4

2010-05-18 10:38:00 601

转载 在vb中使用Iphlpapi.dll获取网络信息 第四章 第二节 一个重要函数

※==================================================================※本连载文章说明:※1、连载首发于《软件报》(http://www.sweek.com)2006年21期(2006年5月22日);※2、此次网上连载采用的是原稿件结构,内容与《软件报》发表略有不同;※3、谢绝除《软件报》及其相关刊物之外的传统媒体部分或全部转载;※4

2010-05-18 10:37:00 303

转载 在vb中使用Iphlpapi.dll获取网络信息 第四章 第一节 错误代码

※==================================================================※本连载文章说明:※1、连载首发于《软件报》(http://www.sweek.com)2006年21期(2006年5月22日);※2、此次网上连载采用的是原稿件结构,内容与《软件报》发表略有不同;※3、谢绝除《软件报》及其相关刊物之外的传统媒体部分或全部转载;※4

2010-05-18 10:36:00 303

转载 在vb中使用Iphlpapi.dll获取网络信息 第三章 第二节 从C原型到Vb声明

※==================================================================※本连载文章说明:※1、连载首发于《软件报》(http://www.sweek.com)2006年21期(2006年5月22日);※2、此次网上连载采用的是原稿件结构,内容与《软件报》发表略有不同;※3、谢绝除《软件报》及其相关刊物之外的传统媒体部分或全部转载;※4

2010-05-18 10:35:00 318

转载 在vb中使用Iphlpapi.dll获取网络信息 第三章 第一节 IPHLPAPI 的其它函数

※==================================================================※本连载文章说明:※1、连载首发于《软件报》(http://www.sweek.com)2006年21期(2006年5月22日);※2、此次网上连载采用的是原稿件结构,内容与《软件报》发表略有不同;※3、谢绝除《软件报》及其相关刊物之外的传统媒体部分或全部转载;※4

2010-05-18 10:34:00 833

转载 在vb中使用Iphlpapi.dll获取网络信息 第二章 第二十一节 增加和删除一个IP地址

※==================================================================※本连载文章说明:※1、连载首发于《软件报》(http://www.sweek.com)2006年21期(2006年5月22日);※2、此次网上连载采用的是原稿件结构,内容与《软件报》发表略有不同;※3、谢绝除《软件报》及其相关刊物之外的传统媒体部分或全部转载;※4

2010-05-18 10:32:00 466

转载 在vb中使用Iphlpapi.dll获取网络信息 第二章 第二十节 测定到指定目的地往返时间和跳跃数

※==================================================================※本连载文章说明:※1、连载首发于《软件报》(http://www.sweek.com)2006年21期(2006年5月22日);※2、此次网上连载采用的是原稿件结构,内容与《软件报》发表略有不同;※3、谢绝除《软件报》及其相关刊物之外的传统媒体部分或全部转载;※4

2010-05-18 10:31:00 371

转载 在vb中使用Iphlpapi.dll获取网络信息 第二章 第十九节 Ping一个IP地址

※==================================================================※本连载文章说明:※1、连载首发于《软件报》(http://www.sweek.com)2006年21期(2006年5月22日);※2、此次网上连载采用的是原稿件结构,内容与《软件报》发表略有不同;※3、谢绝除《软件报》及其相关刊物之外的传统媒体部分或全部转载;※4

2010-05-18 10:30:00 3387

转载 在vb中使用Iphlpapi.dll获取网络信息 第二章 第十八节 在本地电脑的地址解析协议(ARP )表中创建和删除一个ARP

※==================================================================※本连载文章说明:※1、连载首发于《软件报》(http://www.sweek.com)2006年21期(2006年5月22日);※2、此次网上连载采用的是原稿件结构,内容与《软件报》发表略有不同;※3、谢绝除《软件报》及其相关刊物之外的传统媒体部分或全部转载;※4

2010-05-18 10:29:00 349

转载 在vb中使用Iphlpapi.dll获取网络信息 第二章 第十七节 设置TCP连接状态

※==================================================================※本连载文章说明:※1、连载首发于《软件报》(http://www.sweek.com)2006年21期(2006年5月22日);※2、此次网上连载采用的是原稿件结构,内容与《软件报》发表略有不同;※3、谢绝除《软件报》及其相关刊物之外的传统媒体部分或全部转载;※4

2010-05-18 10:28:00 591

转载 在vb中使用Iphlpapi.dll获取网络信息 第二章 第十六节 获取本机IP 路由表

※==================================================================※本连载文章说明:※1、连载首发于《软件报》(http://www.sweek.com)2006年21期(2006年5月22日);※2、此次网上连载采用的是原稿件结构,内容与《软件报》发表略有不同;※3、谢绝除《软件报》及其相关刊物之外的传统媒体部分或全部转载;※4

2010-05-18 10:27:00 514

转载 在vb中使用Iphlpapi.dll获取网络信息 第二章 第十五节 设置本机默认的生存时间(time-to-live:TTL)值

※==================================================================※本连载文章说明:※1、连载首发于《软件报》(http://www.sweek.com)2006年21期(2006年5月22日);※2、此次网上连载采用的是原稿件结构,内容与《软件报》发表略有不同;※3、谢绝除《软件报》及其相关刊物之外的传统媒体部分或全部转载;※4

2010-05-18 10:26:00 337

转载 在vb中使用Iphlpapi.dll获取网络信息 第二章 第十四节 返回本机网络接口数量

※==================================================================※本连载文章说明:※1、连载首发于《软件报》(http://www.sweek.com)2006年21期(2006年5月22日);※2、此次网上连载采用的是原稿件结构,内容与《软件报》发表略有不同;※3、谢绝除《软件报》及其相关刊物之外的传统媒体部分或全部转载;※4

2010-05-18 10:25:00 314

转载 在vb中使用Iphlpapi.dll获取网络信息 第二章 第十三节 获得目的地IP对应的物理地址

※==================================================================※本连载文章说明:※1、连载首发于《软件报》(http://www.sweek.com)2006年21期(2006年5月22日);※2、此次网上连载采用的是原稿件结构,内容与《软件报》发表略有不同;※3、谢绝除《软件报》及其相关刊物之外的传统媒体部分或全部转载;※4

2010-05-18 10:24:00 336

转载 在vb中使用Iphlpapi.dll获取网络信息 第二章 第十二节 获得本机系统网络接口适配器的列表

※==================================================================※本连载文章说明:※1、连载首发于《软件报》(http://www.sweek.com)2006年21期(2006年5月22日);※2、此次网上连载采用的是原稿件结构,内容与《软件报》发表略有不同;※3、谢绝除《软件报》及其相关刊物之外的传统媒体部分或全部转载;※4

2010-05-18 10:14:00 318

转载 在vb中使用Iphlpapi.dll获取网络信息 第二章 第十一节 获取当前计算机的IP信息

※==================================================================※本连载文章说明:※1、连载首发于《软件报》(http://www.sweek.com)2006年21期(2006年5月22日);※2、此次网上连载采用的是原稿件结构,内容与《软件报》发表略有不同;※3、谢绝除《软件报》及其相关刊物之外的传统媒体部分或全部转载;※4

2010-05-18 10:13:00 404

转载 在vb中使用Iphlpapi.dll获取网络信息 第二章 第十节 获取本机已探测的IP – 物理地址映射表

※==================================================================※本连载文章说明:※1、连载首发于《软件报》(http://www.sweek.com)2006年21期(2006年5月22日);※2、此次网上连载采用的是原稿件结构,内容与《软件报》发表略有不同;※3、谢绝除《软件报》及其相关刊物之外的传统媒体部分或全部转载;※4

2010-05-18 10:12:00 416

转载 在vb中使用Iphlpapi.dll获取网络信息 第二章 第九节 获取网卡–IP地址映射表

※==================================================================※本连载文章说明:※1、连载首发于《软件报》(http://www.sweek.com)2006年21期(2006年5月22日);※2、此次网上连载采用的是原稿件结构,内容与《软件报》发表略有不同;※3、谢绝除《软件报》及其相关刊物之外的传统媒体部分或全部转载;※4

2010-05-18 10:11:00 381

转载 在vb中使用Iphlpapi.dll获取网络信息 第二章 第八节 获取本机网络参数

※==================================================================※本连载文章说明:※1、连载首发于《软件报》(http://www.sweek.com)2006年21期(2006年5月22日);※2、此次网上连载采用的是原稿件结构,内容与《软件报》发表略有不同;※3、谢绝除《软件报》及其相关刊物之外的传统媒体部分或全部转载;※4

2010-05-18 10:10:00 299

转载 在vb中使用Iphlpapi.dll获取网络信息 第二章 第七节 获取本机网间控制报文协议(ICMP)信息

※==================================================================※本连载文章说明:※1、连载首发于《软件报》(http://www.sweek.com)2006年21期(2006年5月22日);※2、此次网上连载采用的是原稿件结构,内容与《软件报》发表略有不同;※3、谢绝除《软件报》及其相关刊物之外的传统媒体部分或全部转载;※4

2010-05-18 10:09:00 325

转载 在vb中使用Iphlpapi.dll获取网络信息 第二章 第六节 获取当前UDP连接情况

※==================================================================※本连载文章说明:※1、连载首发于《软件报》(http://www.sweek.com)2006年21期(2006年5月22日);※2、此次网上连载采用的是原稿件结构,内容与《软件报》发表略有不同;※3、谢绝除《软件报》及其相关刊物之外的传统媒体部分或全部转载;※4

2010-05-18 10:01:00 296

转载 在vb中使用Iphlpapi.dll获取网络信息 第二章 第五节 获取本机UDP信息列表

※==================================================================※本连载文章说明:※1、连载首发于《软件报》(http://www.sweek.com)2006年21期(2006年5月22日);※2、此次网上连载采用的是原稿件结构,内容与《软件报》发表略有不同;※3、谢绝除《软件报》及其相关刊物之外的传统媒体部分或全部转载;※4

2010-05-18 10:00:00 284

转载 在vb中使用Iphlpapi.dll获取网络信息 第二章 第四节 获取当前TCP连接情况

※==================================================================※本连载文章说明:※1、连载首发于《软件报》(http://www.sweek.com)2006年21期(2006年5月22日);※2、此次网上连载采用的是原稿件结构,内容与《软件报》发表略有不同;※3、谢绝除《软件报》及其相关刊物之外的传统媒体部分或全部转载;※4

2010-05-18 09:58:00 353

转载 在vb中使用Iphlpapi.dll获取网络信息 第二章 第三节 获取本机TCP 信息列表

※==================================================================※本连载文章说明:※1、连载首发于《软件报》(http://www.sweek.com)2006年21期(2006年5月22日);※2、此次网上连载采用的是原稿件结构,内容与《软件报》发表略有不同;※3、谢绝除《软件报》及其相关刊物之外的传统媒体部分或全部转载;※4

2010-05-18 09:56:00 291

转载 在vb中使用Iphlpapi.dll获取网络信息 第二章 第二节 获取MIB-II 接口表

※==================================================================※本连载文章说明:※1、连载首发于《软件报》(http://www.sweek.com)2006年21期(2006年5月22日);※2、此次网上连载采用的是原稿件结构,内容与《软件报》发表略有不同;※3、谢绝除《软件报》及其相关刊物之外的传统媒体部分或全部转载;※4

2010-05-18 09:55:00 425

转载 在vb中使用Iphlpapi.dll获取网络信息 第二章 第一节 获取本机网络适配器的信息

※==================================================================※本连载文章说明:※1、连载首发于《软件报》(http://www.sweek.com)2006年21期(2006年5月22日);※2、此次网上连载采用的是原稿件结构,内容与《软件报》发表略有不同;※3、谢绝除《软件报》及其相关刊物之外的传统媒体部分或全部转载;※4

2010-05-18 09:53:00 392

转载 在vb中使用Iphlpapi.dll获取网络信息 第一章 前言

※==================================================================※本连载文章说明:※1、连载首发于《软件报》(http://www.sweek.com)2006年21期(2006年5月22日);※2、此次网上连载采用的是原稿件结构,内容与《软件报》发表略有不同;※3、谢绝除《软件报》及其相关刊物之外的传统媒体部分或全部转载;※4

2010-05-18 09:50:00 370

支持JDK8的EclipseADT插件

Google已停止对ADT的支持,尤其是JDK8推出后,ADT已经不能使用,报unsupported class file version 52.0等问题 该ADT版本已去除限制,可继续使用Eclipse开发

2019-04-03

QQ_listctrl扩展控件源代码

一、实现CMyListCtrl要完成的任务及实现方法分析。 1.MyListCtrl 显示彩色图片头像(在线用户头) 让CMyListCtrl 显示彩色图片作为头像很容易,用CImageList 加载规格相同的图片到其中,然后让CimageList和CMyListCtrl关联就可实现, 向ImageList 添加图片或图标的三种方法代码总结如下: CImageList m_imageList;m_imagelist.Create(40, 40, ILC_MASK|ILC_COLOR32, 1, 1);//添加ID 为IDI_ICON的图标m_imageList.Add( AfxGetApp()->LoadIcon(IDI_ICON));//从图标文件中加载并添加HICON hIcon = (HICON)LoadImage(NULL, ".\\image\\SQQun.ico", IMAGE_ICON, 0, 0, LR_LOADFROMFILE)m_imagelist.Add(hIcon);//从位图文件中加载并添加CBitmap *pBitmap=new CBitmap;pbitmap ->m_hObject = (HBITMAP) LoadImage(NULL, "face.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);m_imagelist.Add(pBitmap, RGB(255,255, 255)/*mask color*/);…Delete pBitmap; 把 CMyListCtrl 和CimageList 关联并向ListCtrl 添加用户代码//先创建ListCtrl (m_MyFriendListCtrl)if(m_MyFriendListCtrl.Create(LVS_SMALLICON | WS_TABSTOP|WS_CHILD, CRect(50,100,206,180), this, IDD_TALKER_LIST/*ID*/)) { //关联 m_MyFriendListCtrl.SetImageList(&m_imagelistBig,LVSIL_SMALL); m_MyFriendListCtrl.SetBackBitmap(_T(".\\image\\mainFrame-centerMid.bmp")); //往ListCtrl 中添加好友 for(int i=0; i<10; i++) { CString strTemp; strTemp.Format("我的好友%d",i); LUSERITEM userInfo; userInfo.szUserID = strTemp.GetBuffer(strTemp.GetLength()); strTemp.ReleaseBuffer(); userInfo.szNoticeMsg = _T("天不怕!地不怕!"); m_MyFriendListCtrl.InsertItem(i,strTemp, i,&userInfo);//第三个参数 Index of the ImageList m_MyFriendListCtrl.SetItemData(i,(i%2)? i|0x00000020:i); } m_MyFriendListCtrl.ShowWindow(SW_SHOW);} 2.让CMyListCtrl 显示灰色图片头像(非在线用户) 显示灰色图片的方法可用图像处理软件处理成单色位图文件后使用,也可用软件代码实现转换,前者的方法处理位图文件个数不多是还行,否则就显得麻烦了,其优点运行速度快。用软件代码转换的方法也是可行的,象LoadImage ()或CopyImage()API都可实现,但要占用很多CUP时间。对比两种方法,我选择后者,原因不用说我想大家也清楚。实现彩色图片到单色位图转换的方法是先获取CMyListCtrl的ImageList 并提取ListCtrl中的Item 对应的图像后,用代码转换成单色位图并在原位置显示。转换过程如下: CImageList* pImageList=NULL;pImageList = GetImageList(LVSIL_SMALL);if(pImageList !=NULL){ HICON hIcon=NULL; hIcon = pImageList->ExtractIcon(nItem); HBITMAP hbitmap,hBitmapMask; ICONINFO* iconinfo = new ICONINFO; if(::GetIconInfo(hIcon, iconinfo)) { hbitmap = iconinfo->hbmColor; hBitmapMask = iconinfo->hbmMask; if (!(nStyle & TVS_ONLINEUSER)) //hbitmap = BitmapColorToGray(m_hDll,&memDC,hbitmap); hbitmap = (HBITMAP) CopyImage(hbitmap, IMAGE_BITMAP,0, 0,LR_COPYDELETEORG|LR_MONOCHROME); DrawBitmap(m_hDll, &memDC,hbitmap,rcIcon); DeleteObject(hbitmap); DeleteObject(hBitmapMask); } delete iconinfo; ::DestroyIcon(hIcon);} 实现彩色图片到单色位图转换的语句为:hbitmap = (HBITMAP) CopyImage(hbitmap, IMAGE_BITMAP,0, 0,LR_COPYDELETEORG|LR_MONOCHROME); 我也写了一个实现彩色图片到单色位图转换算法,其代码如下: //这是本人写的一个转换算法。效果好,但运行时间稍长HBITMAP BitmapColorToGray(CDC* pDC,HBITMAP hBitmap){ BITMAP bmpInfo; ::GetObject(hBitmap,sizeof(BITMAP),&bmpInfo); if(pDC) { CDC memDC; if( !memDC.CreateCompatibleDC(pDC) ) { return NULL; } HBITMAP oldBitmap = (HBITMAP)memDC.SelectObject(hBitmap); DWORD r,g,b; for (int H =0; H <= bmpInfo.bmHeight; H++) { for(int W = 0; W <= bmpInfo.bmWidth; W ++) { r = GetRValue(memDC.GetPixel(W,H)); g = GetGValue(memDC.GetPixel(W,H)); b = GetBValue(memDC.GetPixel(W,H)); r = (r * 3 + g * 6 + g) / 10; g = r; b = g; memDC.SetPixel(CPoint(W,H),RGB(r,g,b)); } } hBitmap = (HBITMAP)memDC.SelectObject(oldBitmap); memDC.DeleteDC(); } return hBitmap; } 3.MyListCtrl 要包含丰富的用户信息(如 ID,NAME 、IP Address 、视频可用 ,手机短消息等用户信息) QQ 的ListCtrl 包含了很多信息,如在线用户和不在线用户的头象不同,有视频设备的用户还会显示标志,开通了手机短消息功能的也会显示标志,等等。这是如何实现的?找 MSDN分析CListCtrl 发现,有两个函数SetItemData(int nItem,DWORD dwData),和 DWORD GetItemData(int nItem),非常有用,这个32位 data 做几个标志还是不错的,但还是无法表达更多的东东。如果把这32位 data作为外部结构的地址是否可行呢?经实验是可行的,但在要外部处理,封装性能不好! 于是定义了一个用户信息的结构。 struct LUSERITEM{ CString szUserID; CString szUserName; CString szIPAddress; CString szServerAddress; CString szNoticeMsg; BOOL bOnline; int nHeadImageIndex; //根据需要可增加信息}; 再定义一个链表,用来管理用户信息的结构,如查找,增加,删除等操作。 在头文件中添加#include <dequ>typedef std::deque<LUSERITEM> DEQUELVITEM; 二、打开Visual Studio C++ (6.0),新建工程。(本文的目的是实现自绘 ListCtrl 的,实现过程下面会详细介绍) a. 首先,生成一个新类名为CMyListCtrl. 其基类为CListCtrl. 这部分工作用ClassWizard很容易完成。 b. 添加相关消息及处理函数,OnPaint() ;OnMouseMove();OnHScroll();OnVScroll等,这部工作用ClassWizard同样很容易完成。编译通过后,接着往下看。 c. 在.h文件顶部定义用户信息结构struct LUSERITEM d. 在.h文件顶部定义一些常量标志 #define TVS_VIDEO 0x00000001 //有视频设备标志#define TVS_MOBILEMSG 0x00000002 //可用手机SMS标志#define TVS_NETDISK 0x00000004 #define TVS_LEADER 0x00000008#define TVS_VICELEADER 0x00000010#define TVS_ONLINEUSER 0x00000020 e.添加成员变量 及并在构造函数中初始化CFont* m_pFont; //用于创建选择字体BOOL m_bOverImage; BOOL m_bOverVedio; BOOL m_bOverMobile;DEQUELVITEM m_DequeList; //用户信息链表HICON m_hTailIconA; //vido flagHICON m_hTailIconB; //mobil message flagHICON m_hTailIconC; HBITMAP m_hBackBitmap; //背景 f.添加部分成员函数重载InsertItem函数,用于增加Item同时增加用户信息。 InsertItem(int nItem, LPCTSTR szItemText, int nImageIndex, LUSERITEM* UserInfo){ DEQUELVITEM* pDeqListItem = &m_DequeList; if(UserInfo) pDeqListItem ->push_back(*UserInfo); nItem = CListCtrl::InsertItem(nItem,szItemText,nImageIndex); return nItem;} 添加设置显示图标函数,A指定视频标志图标,B指定为短消息标志图标,C未定义void CMyListCtrl::SetTailIcon(LPCTSTR strIconFileA,LPCTSTR strIconFileB,LPCTSTR strIconFileC){ HICON hIcon=NULL; hIcon = (HICON)::LoadImage(NULL, strIconFileA, IMAGE_ICON, 0, 0, LR_DEFAULTSIZE|LR_LOADFROMFILE); if(hIcon) { if(m_hTailIconA) DeleteObject(m_hTailIconA); m_hTailIconA = hIcon; } hIcon = (HICON)::LoadImage(NULL, strIconFileB, IMAGE_ICON, 0, 0, LR_DEFAULTSIZE|LR_LOADFROMFILE); if(hIcon) { if(m_hTailIconB) DeleteObject(m_hTailIconB); m_hTailIconB = hIcon; } hIcon = (HICON)::LoadImage(NULL, strIconFileC, IMAGE_ICON, 0, 0, LR_DEFAULTSIZE|LR_LOADFROMFILE); if(hIcon) { if(m_hTailIconC) DeleteObject(m_hTailIconC); m_hTailIconC = hIcon; }} 添加设背景位图函数SetBackBitmap void CMyListCtrl::SetBackBitmap(LPCTSTR lpszResourceName){ HBITMAP hBmp = (HBITMAP)::LoadImageFile(lpszResourceName); if(hBmp) m_hBackBitmap = hBmp;} 添加删除用户信息函数 BOOL DeleteUserInfo(CString szText){ BOOL bRet = FALSE; LUSERITEM itemInfo; DEQUELVITEM* pDeqItem = &m_DequeList; int nItemCount = -1; DEQUELVITEM::iterator it,itbegin = pDeqItem->begin(),itend = pDeqItem->end(); for ( it = itbegin; it != itend; it++ ) { nItemCount++; if(( it->szUserID == szText)||(it->szUserName == szText)) { if ( nItemCount == ( pDeqItem->size() - 1 ) ) { //如果是最后一个 pDeqItem->pop_back(); } else if ( nItemCount == 0 ) //如果是第一个 pDeqItem->pop_front(); else pDeqItem->erase( pDeqItem->begin() + nItemCount ); bRet = TRUE; } } return bRet;} 三、自绘代码全部在OnPaint()中实现 ,为了节省篇幅这里省略,请参考源码。

2008-09-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除