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

📄 mywnd.cpp

📁 一个多方面查询的系统,也是很辛苦找到,并且做管理系统很多方面都用到的
💻 CPP
📖 第 1 页 / 共 5 页
字号:
// 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"

#define backport 5100

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

extern CFrontApp theApp;
UINT UdpReceiveMessage(LPVOID pParam);
UINT TcpReceiveMessage(LPVOID pParam);
//////////////////////////////////////////////////////////////////////
// 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;
	sSeverAddress="";
	bIsOnline=false;
	bFlush=false;  //当登陆上时能够刷一次
	ShortMsgIndex=0;  //短消息的当前指针,由上一步,下一步控制

	iCurrentLabel=0;  //用于TAB控制焦点走向
	bZixun=true;
	bChengnuo=true;
	bChengnuoQ=true;
}

CMyWnd::~CMyWnd()
{
	delete SelectBox;
	delete font;
	delete font2;

	if(iFlag==14)
	{
		delete SelectBox1;
		delete SelectBox2;
	}

	if(iFlag!=1)
		delete Wizardcontrol;

	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 onlinelist;

		closesocket(MyUdpSocket);

		delete PageControl;

		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;

	SetFocus();

	SetTimer(1,300,NULL);//鼠标移出程序框
	if(iFlag==1)
	{
		SetTimer(2,200,NULL);  //关闭弹出窗口,刷新QQ窗体
		SetTimer(3,2000,NULL);//发送在线试探信息
		SetTimer(4,1000,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("0",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);
		label3->pEdit->setEnable(false);
		
		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(label3);
		page1->AddItem(label4);

		Wizardcontrol->AddPage(page1);

	}

	if(iFlag==1)  //QQ窗口
	{
		//在线列表
		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("咨询件",1);
		QFace->AddFolder("确认承诺件入库",0);
		QFace->AddFolder("确认承诺件完成",1);
		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,1,"res/Ssearch.bmp");
		list->AddItem("修改及删除用户",2,true,2,"res/AddDel.bmp");
		list->AddItem("初始化数据库",2,true,3,"res/InitKu.bmp");
		list->AddItem("窗口文件修改",2,true,4,"res/fileKu.bmp");

		page2->AddItem(list);
		PageControl->Addpage((void *)page2);


		//初始化UDP接收
		int Ret;
		WSADATA wsaData;
		
		if ((Ret = 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  LocalUDP;
		LocalUDP.sin_family = AF_INET;
		LocalUDP.sin_addr.s_addr = htonl(INADDR_ANY);
		LocalUDP.sin_port = htons(5000);

		if(bind(MyUdpSocket,(SOCKADDR *)&LocalUDP,sizeof(LocalUDP))==SOCKET_ERROR)
		{
			AfxMessageBox("bind() failed");
			return 0;
		}

		AfxBeginThread(UdpReceiveMessage,this,THREAD_PRIORITY_NORMAL);


		//初始化TCP
		MyTCPSocket=socket(AF_INET, SOCK_STREAM, 0);

		if(MyTCPSocket== INVALID_SOCKET) 
		{  
			AfxMessageBox("Failed to get a socket");
			return 0;
		}  

		SOCKADDR_IN  LocalTCP;
		LocalTCP.sin_family = AF_INET;
		LocalTCP.sin_addr.s_addr = htonl(INADDR_ANY);
		LocalTCP.sin_port = htons(5001);
	

		if (bind(MyTCPSocket, (PSOCKADDR) &LocalTCP, sizeof(LocalTCP)) == SOCKET_ERROR)
		{ 
			AfxMessageBox(" tcp bind() failed");
			return 0;
		}  

		if (listen(MyTCPSocket, 5))
		{ 
			AfxMessageBox("tcp listen() failed");
			return 0;
		}  

		AfxBeginThread(TcpReceiveMessage,this,THREAD_PRIORITY_NORMAL);


		//初始化在线列表
		for(int i=0;i<MAX_PERSON;i++)
		{
			onlinelist->wInfo[i].isExit=false;
			onlinelist->wInfo[i].timer=50;
		}

	}

	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);

⌨️ 快捷键说明

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