⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 movgrpdlg.cpp

📁 本系统所完成功能如下: &#61548 即时消息:用户之间发送即时消息。 &#61548 聊天纪录:聊天记录的保存及显示。 &#61548 注册:登陆界面即可进入注册界面 &#61548
💻 CPP
字号:
// MovgrpDlg.cpp : implementation file
//

#include "stdafx.h"
#include "IM.h"
#include "MovgrpDlg.h"

extern int total;
extern struct user
{
	int uid;
	CString fipport;
	CString fnicheng;
	BOOL fonline;
	BOOL fvip;
}fuser[100];
extern CString CRdir;


#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// MovgrpDlg dialog


MovgrpDlg::MovgrpDlg(CWnd* pParent /*=NULL*/)
	: CDialog(MovgrpDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(MovgrpDlg)
	m_nMudi = _T("");
	m_nYZ = _T("");
	m_nGoZ = -1;
	m_nSoM = _T("");
	//}}AFX_DATA_INIT
}


void MovgrpDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(MovgrpDlg)
	DDX_Text(pDX, IDC_EDIT5, m_nMudi);
	DDX_Text(pDX, IDC_EDIT2, m_nYZ);
	DDX_Radio(pDX, IDC_RADIO1, m_nGoZ);
	DDX_Text(pDX, IDC_EDIT1, m_nSoM);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(MovgrpDlg, CDialog)
	//{{AFX_MSG_MAP(MovgrpDlg)
	ON_BN_CLICKED(IDC_RADIO1, OnRadio1)
	ON_BN_CLICKED(IDC_RADIO2, OnRadio2)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// MovgrpDlg message handlers

void MovgrpDlg::OnOK() 
{
	// TODO: Add extra validation here
	    UpdateData();

		if(m_nMudi==m_nYZ)
		{
			MessageBox("源、目的组相同!无需移动!");
			return;
		}

		CString str,s;
		BOOL findmudi=FALSE,findyz=FALSE;
		char buf[20][16];
		int grpnum=GetPrivateProfileInt("FriendGroup","Groupnum",0,CRdir+"\\fenzu.ini");
		for(int i=1;i<=grpnum;i++)
		{
			str.Format("Groupname%d",i);
			GetPrivateProfileString("FriendGroup",str,NULL,buf[i],16,CRdir+"\\fenzu.ini");
			str=buf[i];
			if(str==m_nMudi)
				findmudi=TRUE;
			if(str==m_nYZ)
				findyz=TRUE;
		}
		if(m_nGoZ==0) 
			findyz=TRUE;
		if(!(findyz&&findmudi))
		{
			MessageBox("源或目的组不存在!移动失败!");
			return;
		}
		
		if(m_nGoZ==0)
		{
			//将所输入"****/****/****"格式的一个或多个需转移的好友
			//分离出来保存在本地
			//返回值为好友个数
			int n=Invert(m_nSoM);
			for(i=0;i<n;i++)
			{
				for(int j=1;j<=total;j++)
				{
					if(aY[i]==fuser[j].uid)
						break;
				}
				if(j>total)
				{
					MessageBox("所输入ID有误!移动失败!");
					return;
				}
			}
			for(i=0;i<n;i++)
			{
				//从本地分组文件中先删除好友分组信息
				//再将该好友添加到 "m_nMudi"组中
				DelFriend(aY[i]);
				AddFriendTogrp(m_nMudi,aY[i]);
			}
		}
		else if(m_nGoZ==1)
		{
			//将一个组全部移动到另外一个组中 修改本地分组文件
			int Mudifriendnum=GetPrivateProfileInt(m_nMudi,"Friendnum",0,CRdir+"\\fenzu.ini");
			int Yfriendnum=GetPrivateProfileInt(m_nYZ,"Friendnum",0,CRdir+"\\fenzu.ini");
			int tempID;
			for(i=Yfriendnum;i>=1;i--)
			{
				str.Format("Friend%d",i);
				tempID=GetPrivateProfileInt(m_nYZ,str,0,CRdir+"\\fenzu.ini");
				WritePrivateProfileString(m_nYZ,str,NULL,CRdir+"\\fenzu.ini");
				s.Format("%d",tempID);
				str.Format("Friend%d",++Mudifriendnum);
				WritePrivateProfileString(m_nMudi,str,s,CRdir+"\\fenzu.ini");				
			}
			s.Format("%d",Mudifriendnum);
			WritePrivateProfileString(m_nMudi,"Friendnum",s,CRdir+"\\fenzu.ini");
			s.Format("%d",0);
			WritePrivateProfileString(m_nYZ,"Friendnum",s,CRdir+"\\fenzu.ini");
		}
	CDialog::OnOK();
}

void MovgrpDlg::OnRadio1() 
{
	// TODO: Add your control notification handler code here
	CWnd *pWnd;
	pWnd=GetDlgItem(IDC_EDIT1);
	pWnd->EnableWindow(TRUE);//编辑框激活
	pWnd=GetDlgItem(IDC_EDIT2);
	pWnd->EnableWindow(FALSE);
}

void MovgrpDlg::OnRadio2() 
{
	// TODO: Add your control notification handler code here
	CWnd *pWnd;
	pWnd=GetDlgItem(IDC_EDIT1);
	pWnd->EnableWindow(FALSE);//编辑框不可用
	pWnd=GetDlgItem(IDC_EDIT2);
	pWnd->EnableWindow(TRUE);
}

int MovgrpDlg::Invert(CString s)
{
	//将所输入"****/****/****"格式的一个或多个需转移的好友
	//分离出来保存在本地数组 aY[] 中。
	//返回值为好友个数

	int num=0,digital,j=0;
	for(int i=0;i<s.GetLength();i++)
	{ 
		if(s.GetAt(i)!='/')
		{
			digital=s.GetAt(i)-48;
			num=num*10+digital; 
		}
		else
		{
			aY[j]=num;
			num=0;
			j++;
		}
	} 
	aY[j]=num;
	return j+1;
}


void MovgrpDlg::AddFriendTogrp(CString buffer,int uid)
			//再将好友 uid 添加到 "buffer"组中
{
	CString str,temp;
	int	i=(int)GetPrivateProfileInt(buffer,"Friendnum",0,CRdir+"\\fenzu.ini");
				str.Format("Friend%d",++i);
				
				temp.Format("%d",uid);
				WritePrivateProfileString(buffer,str,temp,CRdir+"\\fenzu.ini");
				temp.Format("%d",i);
				WritePrivateProfileString(buffer,"Friendnum",temp,CRdir+"\\fenzu.ini");
}


void MovgrpDlg::DelFriend(int uid)
//从本地分组文件中删除好友uid的分组信息 修改分组纪录文件
//由于采用.ini文件 所以删除一项比较复杂
{
	int friendnum,k=1,nextuid;
			CString str,s;
			BOOL find=FALSE;
			char buf[20][16];
			int grpnum=GetPrivateProfileInt("FriendGroup","Groupnum",0,CRdir+"\\fenzu.ini");
			for(int i=1;i<=grpnum;i++)
			{
				str.Format("Groupname%d",i);
				GetPrivateProfileString("FriendGroup",str,NULL,buf[i],16,CRdir+"\\fenzu.ini");
				friendnum=GetPrivateProfileInt(buf[i],"Friendnum",0,CRdir+"\\fenzu.ini");
				for(k=1;k<=friendnum;k++)
				{
					str.Format("Friend%d",k);
					nextuid=(int)GetPrivateProfileInt(buf[i],str,0,CRdir+"\\fenzu.ini");
					if(uid==nextuid)
						find=TRUE;
					else if(find)
					{
						str.Format("Friend%d",k-1);
						s.Format("%d",nextuid);
						WritePrivateProfileString(buf[i],str,s,CRdir+"\\fenzu.ini");
					}
				}
				if(find)
				{
					s.Format("%d",friendnum-1);
					WritePrivateProfileString(buf[i],"Friendnum",s,CRdir+"\\fenzu.ini");
					s.Format("Friend%d",friendnum);
					WritePrivateProfileString(buf[i],s,NULL,CRdir+"\\fenzu.ini");
					break;
				}
			}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -