📄 movgrpdlg.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 + -