📄 mywnd.cpp
字号:
// MyWnd.cpp: implementation of the CMyWnd class.
//
//////////////////////////////////////////////////////////////////////
#include "StdAfx.h"
#include "front.h"
#include "MyWnd.h"
#include "InputBox.h"
#include "MySheetpage.h"
#include "QQFace.h"
#include "fstream.h"
#include "MyLabel.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
extern CFrontApp theApp;
UINT UdpReceiveMessage(LPVOID pParam);
HANDLE WriteCustomerInfoEvent;
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
IMPLEMENT_DYNCREATE(CMyWnd, CWnd)
BEGIN_MESSAGE_MAP(CMyWnd, CWnd)
//{{AFX_MSG_MAP(CGfxOutBarCtrl)
ON_WM_CREATE()
ON_WM_PAINT()
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
ON_WM_MOUSEMOVE()
ON_WM_RBUTTONDOWN()
ON_WM_TIMER()
ON_WM_LBUTTONDBLCLK()
//}}AFX_MSG_MAP
ON_MESSAGE(WM_ACCEPT, OnAcceptMessage)
END_MESSAGE_MAP()
CMyWnd::CMyWnd()
{
crBackground=RGB(108,149,239);
iRountAngle=17;
bAutoClose=false;
bIsOnline=false;
bFlush=false;
ShortMsgIndex=0; //短消息的当前指针
iCurrentshortMsgIndex=0;
iCurrentLabel=0; //用于TAB控制焦点走向
bChengnuo=true;
//初始信号量
WriteCustomerInfoEvent=CreateEvent(NULL,true,true,NULL);
}
CMyWnd::~CMyWnd()
{
delete SelectBox;
delete font;
delete font2;
if(iFlag!=1)
delete Wizardcontrol;
if(iFlag==14)
{
delete SelectBox1;
delete SelectBox2;
}
if(iFlag==1) //QQ界面
{
//下线
// theApp.Login(0);
//删除短信息保存指针
shortmsgitem *temp1;
for(int i=0;i<MAX_PERSON;i++)
{
for(int j=shortmsg[i].msg.GetSize()-1;j>=0;j--)
{
temp1=(shortmsgitem *)shortmsg[i].msg.GetAt(j);
delete temp1;
shortmsg[i].msg.RemoveAt(j);
}
}
delete PageControl;
delete onlinelist;
closesocket(MyUdpSocket);
i=0;
int AllCount=arDialogs.GetSize();
CInputBox *temp;
for(i=0;i<AllCount;i++)
{
temp=(CInputBox *)arDialogs.GetAt(i);
if(temp->bClose)
delete temp;
}
if(AllCount>0)arDialogs.RemoveAll();
}
}
int CMyWnd::Create(DWORD dwStyle, const RECT &rect, CWnd *pParentWnd, UINT nID,int flag)
{
iFlag=flag;
WndRect=rect;
bIsDBClick=false;
font=new CFont;
font2=new CFont;
return CWnd::CreateEx(NULL, NULL, NULL, dwStyle|WS_CHILD, rect, pParentWnd, nID);
}
int CMyWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CWnd::OnCreate(lpCreateStruct) == -1)
return -1;
SetTimer(1,300,NULL);//鼠标移出程序框
if(iFlag==1)
{
SetTimer(2,100,NULL);//关闭弹出窗口
SetTimer(4,600,NULL);//未检测到在线信息时下线
}
// TODO: Add your specialized creation code here
SelectBox=new CMySelectBox(this,IDC_SELECTBOX);
SelectBox->list->bordercol=RGB(0,0,0); //边框颜色
if(iFlag==0) //登陆框
{
CRect clientRc;
GetClientRect(&clientRc);
Wizardcontrol=new CMyWizardcontrol(this);
Wizardcontrol->setPos(clientRc);
CMySheetpage *page1;
page1=new CMySheetpage;
page1->Init(NULL,1,this,false,NULL);
page1->setPos(clientRc);
CMyLabel *label1,*label2,*label3,*label4;
label1=new CMyLabel("窗口号:",4,2,false,false,NULL,NULL,this);
label1->setPos(page1->PageRect.left+10,page1->PageRect.top+10,page1->PageRect.left+100,page1->PageRect.top+30);
label1->SetTextCol(RGB(243,243,243));
label2=new CMyLabel("密 码:",4,2,false,false,NULL,NULL,this);
label2->setPos(page1->PageRect.left+10,page1->PageRect.top+30,page1->PageRect.left+100,page1->PageRect.top+65);
label2->SetTextCol(RGB(243,243,243));
label3=new CMyLabel("",5,2,false,false,1,NULL,this);
label3->setPos(page1->PageRect.left+70,page1->PageRect.top+12,page1->PageRect.left+200,page1->PageRect.top+28);
label4=new CMyLabel("",5,2,false,false,2,NULL,this);
label4->setPos(page1->PageRect.left+70,page1->PageRect.top+39,page1->PageRect.left+200,page1->PageRect.top+55);
page1->AddItem(label1);
page1->AddItem(label2);
page1->AddItem(label4);
page1->AddItem(label3);
Wizardcontrol->AddPage(page1);
}
if(iFlag==1) //QQ窗口
{
//未检测到在线信息时下线的时间间隔
IsExit=50;
//在线列表
onlinelist=new OnlineList;
PageControl=new CMySheetcontrol(IDC_PAGECONTROL,this);
PageControl->setPos(40,2,183,494);
PageControl->bodorcol=crBackground;
CMySheetpage *page1;
page1=new CMySheetpage;
page1->Init(NULL,1,this,true,"res/mail.bmp");
page1->setPos(PageControl->ControlRect);
CQQFace *QFace;
QFace=new CQQFace(this,IDC_QQFACE);
QFace->AddFolder("信息",2);
QFace->AddFolder("未办结的承诺件",0);
QFace->setPos(CRect(page1->PageRect.left+3,page1->PageRect.top+2,page1->PageRect.right-3,page1->PageRect.bottom-2));
page1->AddItem(QFace);
PageControl->Addpage((void *)page1);
CMySheetpage *page2;
page2=new CMySheetpage;
page2->Init(NULL,1,this,true,"res/search1.bmp");
page2->setPos(PageControl->ControlRect);
CMyList *list;
list=new CMyList(this,IDC_SEARCH,true);
list->setPos(CRect(PageControl->ControlRect.left+7,PageControl->ControlRect.top+10,PageControl->ControlRect.right-6,PageControl->ControlRect.bottom-10));
list->AddItem("查询",2,true,0,"res/Ssearch.bmp");
list->AddItem("提交件",2,true,1,"res/submit.bmp");
page2->AddItem(list);
PageControl->Addpage((void *)page2);
//初始化UDP接收
WSADATA wsaData;
if (( WSAStartup(0x0202,&wsaData)) != 0)
{
AfxMessageBox("WSAStartup failed with error");
WSACleanup();
return 0;
}
MyUdpSocket = socket(AF_INET, SOCK_DGRAM, 0);
if (MyUdpSocket == INVALID_SOCKET)
{
AfxMessageBox("socket() failed");
return 0;
}
SOCKADDR_IN Local;
Local.sin_family = AF_INET;
Local.sin_addr.s_addr = htonl(INADDR_ANY);
Local.sin_port = htons(5000+theApp.HostNo);
if(bind(MyUdpSocket,(SOCKADDR *)&Local,sizeof(Local))==SOCKET_ERROR)
{
AfxMessageBox("bind() failed");
return 0;
}
AfxBeginThread(UdpReceiveMessage,this,THREAD_PRIORITY_NORMAL);
}
if(iFlag==2) //设置窗口
{
CRect clientRc;
GetClientRect(&clientRc);
Wizardcontrol=new CMyWizardcontrol(this);
Wizardcontrol->setPos(clientRc);
CMySheetpage *page1;
page1=new CMySheetpage;
page1->Init(NULL,1,this,false,NULL);
page1->setPos(clientRc);
CMyLabel *label1;
label1=new CMyLabel("前台程序地址:",4,2,false,false,NULL,NULL,this);
label1->setPos(page1->PageRect.left+10,page1->PageRect.top+10,page1->PageRect.left+100,page1->PageRect.top+30);
label1->SetTextCol(RGB(243,243,243));
CMyLabel *label2;
label2=new CMyLabel("",5,2,false,false,NULL,NULL,this);
label2->setPos(label1->LabelRect.left+40,label1->LabelRect.bottom+10,label1->LabelRect.left+200,label1->LabelRect.bottom+28);
page1->AddItem(label1);
page1->AddItem(label2);
Wizardcontrol->AddPage(page1);
}
if(iFlag==3) //概要窗口
{
CRect clientRc;
GetClientRect(&clientRc);
Wizardcontrol=new CMyWizardcontrol(this);
Wizardcontrol->setPos(clientRc);
CMySheetpage *page1;
page1=new CMySheetpage;
page1->Init(NULL,1,this,false,NULL);
page1->setPos(clientRc);
CMyLabel *label1,*label2,*label3,*label4,*label5,*label51;
label1=new CMyLabel("窗口号:",4,2,false,false,NULL,NULL,this);
label1->setPos(page1->PageRect.left+20,page1->PageRect.top+6,page1->PageRect.left+70,page1->PageRect.top+20);
label1->SetTextCol(RGB(243,243,243));
label2=new CMyLabel("窗口名:",4,2,false,false,NULL,NULL,this);
label2->setPos(page1->PageRect.left+20,page1->PageRect.top+20,page1->PageRect.left+70,page1->PageRect.top+50);
label2->SetTextCol(RGB(243,243,243));
label3=new CMyLabel("用户名:",4,2,false,false,NULL,NULL,this);
label3->setPos(page1->PageRect.left+20,page1->PageRect.top+50,page1->PageRect.left+70,page1->PageRect.top+70);
label3->SetTextCol(RGB(243,243,243));
label4=new CMyLabel("性 别:",4,2,false,false,NULL,NULL,this);
label4->setPos(page1->PageRect.left+20,page1->PageRect.top+70,page1->PageRect.left+70,page1->PageRect.top+90);
label4->SetTextCol(RGB(243,243,243));
label5=new CMyLabel("IP地址:",4,2,false,false,NULL,NULL,this);
label5->setPos(page1->PageRect.left+20,page1->PageRect.top+90,page1->PageRect.left+70,page1->PageRect.top+110);
label5->SetTextCol(RGB(243,243,243));
label51=new CMyLabel("主机名:",4,2,false,false,NULL,NULL,this);
label51->setPos(page1->PageRect.left+20,page1->PageRect.top+110,page1->PageRect.left+70,page1->PageRect.top+130);
label51->SetTextCol(RGB(243,243,243));
page1->AddItem(label1);
page1->AddItem(label2);
page1->AddItem(label3);
page1->AddItem(label4);
page1->AddItem(label5);
page1->AddItem(label51);
CMyLabel *label6,*label7,*label8,*label9,*label10,*label11;
CMyLabel *tempLabel=((CMyWnd *)((CInputBox *)GetOwner())->ClientWnd)->pParentLabel;
// CMyWnd *temp=(CMyWnd *)((CInputBox *)GetOwner())->GetOwner();
label6=new CMyLabel(((CMyWnd *)((CInputBox *)GetOwner())->GetOwner())->onlinelist->wInfo[tempLabel->iAct].windowNo,4,2,false,false,NULL,NULL,this);
label6->setPos(page1->PageRect.left+80,page1->PageRect.top+6,page1->PageRect.left+200,page1->PageRect.top+20);
label6->SetTextCol(RGB(243,243,243));
label7=new CMyLabel(((CMyWnd *)((CInputBox *)GetOwner())->GetOwner())->onlinelist->wInfo[tempLabel->iAct].windowName,4,2,false,false,NULL,NULL,this);
label7->setPos(page1->PageRect.left+80,page1->PageRect.top+20,page1->PageRect.left+200,page1->PageRect.top+50);
label7->SetTextCol(RGB(243,243,243));
label8=new CMyLabel(((CMyWnd *)((CInputBox *)GetOwner())->GetOwner())->onlinelist->wInfo[tempLabel->iAct].personName,4,2,false,false,NULL,NULL,this);
label8->setPos(page1->PageRect.left+80,page1->PageRect.top+50,page1->PageRect.left+200,page1->PageRect.top+70);
label8->SetTextCol(RGB(243,243,243));
label9=new CMyLabel(((CMyWnd *)((CInputBox *)GetOwner())->GetOwner())->onlinelist->wInfo[tempLabel->iAct].personSex,4,2,false,false,NULL,NULL,this);
label9->setPos(page1->PageRect.left+80,page1->PageRect.top+70,page1->PageRect.left+200,page1->PageRect.top+90);
label9->SetTextCol(RGB(243,243,243));
label10=new CMyLabel(((CMyWnd *)((CInputBox *)GetOwner())->GetOwner())->onlinelist->wInfo[tempLabel->iAct].windowAddress,4,2,false,false,NULL,NULL,this);
label10->setPos(page1->PageRect.left+80,page1->PageRect.top+90,page1->PageRect.left+200,page1->PageRect.top+110);
label10->SetTextCol(RGB(243,243,243));
label11=new CMyLabel(((CMyWnd *)((CInputBox *)GetOwner())->GetOwner())->onlinelist->wInfo[tempLabel->iAct].hostName,4,2,false,false,NULL,NULL,this);
label11->setPos(page1->PageRect.left+80,page1->PageRect.top+110,page1->PageRect.left+200,page1->PageRect.top+130);
label11->SetTextCol(RGB(243,243,243));
page1->AddItem(label6);
page1->AddItem(label7);
page1->AddItem(label8);
page1->AddItem(label9);
page1->AddItem(label10);
page1->AddItem(label11);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -