?? qqeditdlg.cpp
字號:
#include "DllMain.h"
#include "QQEditDlg.h"
#include "../MicroQQ/qqlib/QQDefine.h"
LRESULT CQQEditDlg::OnMsg(UINT Msg,WPARAM wParam,LPARAM lParam){
switch(Msg){
case WM_INITDIALOG:OnCreate();break;
case WM_COMMAND:
switch(LOWORD(wParam)){
case IDCANCEL:EndDialog();break;
case IDOK:OnOK();break;
}
break;
}
//return CKDialog::OnMsg(Msg,wParam,lParam);
return FALSE;
}
void CQQEditDlg::OnCreate(){
if( (m_IsEdit=(m_ClientNode.m_Count>0)) ){
SetWindowText("編輯");
CQQClientBase *lpClient=m_ClientNode.m_Root->data;
m_Status=lpClient->m_Status;
m_UseTM=lpClient->m_UseTM;
m_HasVideo=lpClient->m_HasVideo;
m_IsTCP=lpClient->m_lpSocket->m_IsTCP;
m_AutoLogin=lpClient->m_lpClientDataEx->m_AutoLogin;
m_AutoOff=lpClient->m_lpClientDataEx->m_AutoOff;
m_OtherQQ=lpClient->m_lpClientDataEx->m_OtherQQ;
m_SaveMsg=lpClient->m_lpClientDataEx->m_SaveMsg;
strncpy(m_RetMsg,lpClient->m_lpClientDataEx->m_RetMsg,sizeof(m_RetMsg));
}else{
SetWindowText("添加");
m_Status=QQ_STATUS_AWAY;
m_UseTM=FALSE;
m_HasVideo=FALSE;
m_AutoOff=TRUE;
m_IsTCP=FALSE;
m_AutoLogin=FALSE;
m_OtherQQ=0;
m_SaveMsg=FALSE;
strcpy(m_RetMsg,"這家伙很牛,掛Q中...");
}
CheckDlgButton( (m_Status==QQ_STATUS_ONLINE?IDC_RADIO1:
(m_Status==QQ_STATUS_AWAY?IDC_RADIO2:IDC_RADIO3 ) ),TRUE);
if(m_OtherQQ>10000)
SetDlgItemInt(IDC_EDIT_TOQQ,m_OtherQQ);
CheckDlgButton(IDC_CHECK_VIDEO,m_HasVideo);
CheckDlgButton(IDC_CHECK_AUTOLOGIN,m_AutoLogin);
CheckDlgButton(IDC_CHECK_AUTOLOGOUT,m_AutoOff);
CheckDlgButton(IDC_CHECK_USETM,m_UseTM);
CheckDlgButton(IDC_CHECK_TCP,m_IsTCP);
CheckDlgButton(IDC_CHECK_SAVEMSG,m_SaveMsg);
SetDlgItemText(IDC_EDIT_RET_MSG,m_RetMsg);
char buf[64*1024-1];
char *lpbuf=buf;
*lpbuf=0;
for(CQQClientNode::LPNode lpNode=m_ClientNode.m_Root;lpNode;lpNode=lpNode->pNext){
lpbuf+=sprintf(lpbuf,"%d\r\n",lpNode->data->m_QQ);
if( (lpbuf-buf)>(64*1024-512)){
strcpy(lpbuf,"...");
break;
}
}
SetDlgItemText(IDC_EDIT_QQ_PWD,buf);
}
void CQQEditDlg::OnOK(){
char buf[64*1024-1];long qq;
if(IsRadioButtonCheck(IDC_RADIO1))m_Status=QQ_STATUS_ONLINE;
if(IsRadioButtonCheck(IDC_RADIO2))m_Status=QQ_STATUS_AWAY;
if(IsRadioButtonCheck(IDC_RADIO3))m_Status=QQ_STATUS_HIDDEN;
m_OtherQQ=GetDlgItemInt(IDC_EDIT_TOQQ);
if(m_OtherQQ<10001)m_OtherQQ=0;
m_HasVideo=IsRadioButtonCheck(IDC_CHECK_VIDEO);
m_AutoLogin=IsRadioButtonCheck(IDC_CHECK_AUTOLOGIN);
m_AutoOff=IsRadioButtonCheck(IDC_CHECK_AUTOLOGOUT);
m_UseTM=IsRadioButtonCheck(IDC_CHECK_USETM);
m_IsTCP=IsRadioButtonCheck(IDC_CHECK_TCP);
m_SaveMsg=IsRadioButtonCheck(IDC_CHECK_SAVEMSG);
GetDlgItemText(IDC_EDIT_RET_MSG,m_RetMsg,sizeof(m_RetMsg));
GetDlgItemText(IDC_EDIT_QQ_PWD,buf,sizeof(buf));
char *pp;
char *pnext=buf;
while(pp=kenstrtok(pnext,"\r\n")){
LPSTR lppwd=strchr(pp,'-');
if(lppwd){
*lppwd++=0;
while(*lppwd=='-')lppwd++;
}
qq=atol(pp);
if(qq<10001)continue;
CQQClientBase *lpClient=NULL;
CQQClientNode::LPNode lpNode=m_ClientNode.m_Root;
for(;lpNode;lpNode=lpNode->pNext)
if(lpNode->data->m_QQ==(DWORD)qq){
lpClient=lpNode->data;
lpNode=lpNode->pNext;//pPrev;
break;
}
if(lpNode==NULL)lpNode=m_ClientNode.m_Root;
if(lpClient==NULL){
lpClient=m_lpQQPlugin->lpNewQQClient(m_lpGuiWndBase);
lpClient->m_QQ=qq;
m_ClientNode.Add(lpClient);
m_lpQQListView->AddQQ(lpClient);
void AttachQQClient(CQQClientBase *lpClient);
AttachQQClient(lpClient);
if(lpNode)
memcpy(lpClient->m_Password,lpNode->data->m_Password,QQ_KEY_LENGTH);
}
if(lppwd){
if(*lppwd){
lpClient->SetLoginPassword(lppwd);//此處為了簡化,使用主程序的MD5計算密碼
//你也可以使用自己的MD5計算兩次,再復制到密碼數據 [m_Password]
}else{
if(lpNode)
memcpy(lpClient->m_Password,lpNode->data->m_Password,QQ_KEY_LENGTH );
}
}
bool IsChangeStatus=false;
bool IsReLogin=false;
if(lpClient->m_Status!=m_Status)IsChangeStatus=true;
lpClient->m_Status=m_Status;
if(lpClient->m_UseTM!=m_UseTM)IsReLogin=true;
lpClient->m_UseTM=m_UseTM;
if(lpClient->m_HasVideo!=m_HasVideo)IsChangeStatus=true;
lpClient->m_HasVideo=m_HasVideo;
if(lpClient->m_lpSocket->m_IsTCP!=m_IsTCP)IsReLogin=true;
lpClient->m_lpSocket->m_IsTCP=m_IsTCP;
lpClient->m_lpClientDataEx->m_AutoLogin=m_AutoLogin;
lpClient->m_lpClientDataEx->m_AutoOff=m_AutoOff;
lpClient->m_lpClientDataEx->m_OtherQQ=m_OtherQQ;
lpClient->m_lpClientDataEx->m_SaveMsg=m_SaveMsg;
strncpy(lpClient->m_lpClientDataEx->m_RetMsg,m_RetMsg,sizeof(lpClient->m_lpClientDataEx->m_RetMsg));
if(IsReLogin || (!lpClient->m_IsLogin && m_AutoLogin)){
lpClient->Login();
}else if(IsChangeStatus && lpClient->m_IsLogin)
lpClient->ChangeStatus();
}
//GetDlgItemText(IDC_EDIT_PWD,m_PWD,sizeof(m_PWD));
EndDialog(IDOK);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -