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

📄 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"
#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 + -