📄 qqadddlg.cpp
字号:
// QQAddDlg.cpp : implementation file
//
#include "stdafx.h"
#include "QQ自动登陆器.h"
#include "QQAddDlg.h"
#include "MD5.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// QQAddDlg dialog
QQAddDlg::QQAddDlg(CWnd* pParent /*=NULL*/)
: CDialog(QQAddDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(QQAddDlg)
m_szQQNumber = _T("");
m_szQQName = _T("");
m_szQQPWD = _T("");
m_bHideLogon = FALSE;
QQNbrValid = QQ_VALID;
//}}AFX_DATA_INIT
}
void QQAddDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(QQAddDlg)
DDX_Check(pDX, IDC_CHECK_HIDE, m_bHideLogon);
DDX_Text(pDX, IDC_EDIT_QQNAME, m_szQQName);
DDV_MaxChars(pDX, m_szQQName, 12);
DDX_Text(pDX, IDC_EDIT_QQNBR, m_szQQNumber);
DDV_MaxChars(pDX, m_szQQNumber, 14);
DDX_Text(pDX, IDC_EDIT_QQPWD, m_szQQPWD);
DDV_MaxChars(pDX, m_szQQPWD, 16);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(QQAddDlg, CDialog)
//{{AFX_MSG_MAP(QQAddDlg)
ON_BN_CLICKED(IDC_BUTTON_ADDQQNOW, OnButtonAddqqnow)
ON_BN_CLICKED(IDC_BUTTON_ADDQQLATE, OnButtonAddqqlate)
ON_BN_CLICKED(IDC_BUTTON_CLEARINFO, OnButtonClearinfo)
ON_EN_CHANGE(IDC_EDIT_QQNBR, OnChangeEditQQNbr)
ON_EN_CHANGE(IDC_EDIT_QQNAME, OnChangeEditQqname)
ON_EN_CHANGE(IDC_EDIT_QQPWD, OnChangeEditQqpwd)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// QQAddDlg message handlers
void QQAddDlg::OnButtonAddqqnow()
{
UpdateData(TRUE);
// 检查必填项
if (m_szQQNumber.IsEmpty() || m_szQQName.IsEmpty() || m_szQQPWD.IsEmpty())
{
SetDlgItemText(IDC_RESULT_INFO, "错误: QQ号码,昵称,密码必填!");
//AfxMessageBox("错误: QQ号码,昵称,密码 三处必填!");
return;
}
// 检查QQ号码
if (QQ_NO_CHAR == QQNbrValid)
{
SetDlgItemText(IDC_RESULT_INFO, "错误: QQ号码只能全是数字!");
return;
}
else if (QQ_DUP == QQNbrValid)
{
SetDlgItemText(IDC_RESULT_INFO, "错误: 列表中已有此QQ号码!");
return;
}
// 密码限制
if (m_szQQPWD.GetLength() > 16)
{
SetDlgItemText(IDC_RESULT_INFO, "错误: QQ密码错误, 最长16位!");
//AfxMessageBox("错误: QQ密码错误, 最长16位!");
return;
}
// 昵称限制 本地就不限制了
// 有修改,需要更新
QQListNeedUpdate = TRUE;
// 密码MD5Hex存放
unsigned char PWDMD5[16];
void* QQPWDStr = (PVOID)((LPCTSTR)m_szQQPWD);
MD5::ToMD5(PWDMD5,QQPWDStr,m_szQQPWD.GetLength());
CString MD5Hex;
MemToHexStr(PWDMD5, 16, MD5Hex);
CString LogonStatus = m_bHideLogon?"隐身":"在线";
// 添加可以连续,修改只有一次
if (TRUE == EditQQInfo)
{
int i = QQInfoIndex;
CString IsUsing = QQInfoList[i].IsUsing()?"挂":"停";
QQInfoList[i]=QQInfo(m_szQQNumber,m_szQQName,MD5Hex,LogonStatus);
QQInfoList[i].SetQQUsOrNot(IsUsing);
WriteIniQQNbr(QQLIST_CONTENT, QQLISTNO, i, QQInfoList[i].GetConfStr(), g_ConfigFilePath);
SetDlgItemText(IDC_RESULT_INFO, "成功: 修改完成!切换到QQ列表!");
}
else
{
QQInfoList.push_back(QQInfo(m_szQQNumber,m_szQQName,MD5Hex,LogonStatus));
//g_QQListLength++; 暂不修改
int i = QQInfoList.size()-1;
WriteIniQQNbr(QQLIST_CONTENT, QQLISTNO, i, QQInfoList[i].GetConfStr(), g_ConfigFilePath);
CString QQCount;
QQCount.Format("%d",QQInfoList.size());
WritePrivateProfileString(MAIN_CONFIG,QQLIST_LEN,QQCount,g_ConfigFilePath);
SetDlgItemText(IDC_RESULT_INFO, "成功: 添加完成!可以继续添加!");
ClearQQInfo();
return;
}
ChangeToQQlistDlg();
}
void QQAddDlg::OnButtonAddqqlate()
{
EditQQInfo = FALSE;
QQInfoIndex = -1;
ChangeToQQlistDlg();
}
void QQAddDlg::ClearQQInfo()
{
m_szQQNumber = _T("");
m_szQQName = _T("");
m_szQQPWD = _T("");
m_bHideLogon = FALSE;
QQNbrValid = QQ_VALID;
UpdateData(FALSE);
SetDlgItemText(IDC_QQNBR_LEN, "0");
SetDlgItemText(IDC_QQNAME_LEN, "0");
SetDlgItemText(IDC_QQPWD_LEN, "0");
}
void QQAddDlg::OnButtonClearinfo()
{
ClearQQInfo();
}
void QQAddDlg::SetQQInfoShow(QQInfo& InfoShow)
{
InfoShow.GetQQInfo(m_szQQNumber, m_szQQName, m_szQQPWD, m_bHideLogon);
UpdateData(FALSE);
}
// 切换到QQ列表
void QQAddDlg::ChangeToQQlistDlg()
{
ShowAddDlg = FALSE;
ShowWindow(SW_HIDE);
NMHDR nmhdr;
nmhdr.code=TCN_SELCHANGE;
nmhdr.hwndFrom=((CTabCtrl*)GetParent())->GetSafeHwnd();
nmhdr.idFrom=IDC_TAB1;
::SendMessage(nmhdr.hwndFrom,WM_NOTIFY,(WPARAM)IDC_TAB1,(LPARAM)(&nmhdr));
}
void QQAddDlg::OnChangeEditQQNbr()
{
UpdateData(TRUE);
CString sLen;
sLen.Format("%d",m_szQQNumber.GetLength());
SetDlgItemText(IDC_QQNBR_LEN, sLen);
// 检查QQ号码
if (m_szQQNumber != m_szQQNumber.SpanIncluding("0123456789"))
{
SetDlgItemText(IDC_RESULT_INFO, "错误: QQ号码只能全是数字!");
QQNbrValid = QQ_NO_CHAR;
return;
}
else
{
// 检查重复
for (int i = 0; i< QQInfoList.size(); i++)
{
// 修改操作时不检查本身
if (TRUE == EditQQInfo && i == QQInfoIndex)
{
continue;
}
if (QQInfoList[i].IsDup(m_szQQNumber))
{
SetDlgItemText(IDC_RESULT_INFO, "错误: 列表中已有此QQ号码!");
QQNbrValid = QQ_DUP;
return;
}
}
}
QQNbrValid = QQ_VALID;
SetDlgItemText(IDC_RESULT_INFO, "状态: 此QQ号码合理有效!");
}
BOOL QQAddDlg::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN)
{
return TRUE;
}
if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_ESCAPE)
{
return TRUE;
}
if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_SPACE &&
GetFocus() != GetDlgItem(IDC_EDIT_QQPWD))
{
if (GetFocus() == GetDlgItem(IDC_EDIT_QQNAME))
{
if (m_szQQName.GetLength()<12)
{
m_szQQName+="_";
UpdateData(FALSE);
CEdit* pQQName = (CEdit*)GetDlgItem(IDC_EDIT_QQNAME);
pQQName->SetSel(m_szQQName.GetLength(),m_szQQName.GetLength());
}
}
return TRUE;
}
return CDialog::PreTranslateMessage(pMsg);
}
void QQAddDlg::OnChangeEditQqname()
{
UpdateData(TRUE);
CString sLen;
sLen.Format("%d",m_szQQName.GetLength());
SetDlgItemText(IDC_QQNAME_LEN, sLen);
}
void QQAddDlg::OnChangeEditQqpwd()
{
UpdateData(TRUE);
CString sLen;
sLen.Format("%d",m_szQQPWD.GetLength());
SetDlgItemText(IDC_QQPWD_LEN, sLen);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -