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

📄 elevatordlg.h

📁 这是一个用c++编写的可以处理4台10层电梯的电梯调度系统
💻 H
字号:
// ElevatorDlg.h : header file
//

#if !defined(AFX_ELEVATORDLG_H__02CD205C_1566_449C_B58D_1BF712DC64AA__INCLUDED_)
#define AFX_ELEVATORDLG_H__02CD205C_1566_449C_B58D_1BF712DC64AA__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "resource.h"		// main symbols
#include "CommonInc.h"
#include "WaitQueue.h"
#include "ColorStaticST.h"

//发往父窗体的消息
#define WM_ARRIVE_ONEFLOOR		WM_USER+ 0X80


/*####################################################################
  模块名称:	电梯箱体
  开发作者:	漫步阳光
  开发时间:	@2005.11
####################################################################*/


/////////////////////////////////////////////////////////////////////////////
// CElevatorDlg dialog

class CElevatorDlg : public CDialog
{
// Construction
public:
	CElevatorDlg(CWnd* pParent = NULL);	// standard constructor
	CElevatorDlg(int iElevatorNo, int iMaxPassengerNum=15, int iIniFloor=1, CWnd* pParent = NULL);	

	void acceptReq(sOuterRequest& tmpOuterRequest);
	bool isOverWeight() { return m_iCurPassengerNum > m_iMaxPassengerNum; }
	bool isMalFunction() { return m_eCurState==MAL_FUNCTION; }	
	int getElevatorNo() { return m_iElevatorNo; }
	int getCurPassengerNum() { return m_iCurPassengerNum; }
	int getCurFloor() { return m_iCurFloor; }
	int getCurWeight() { return m_iCurPassengerNum; }
	enum state getState() { return m_eCurState; }
	bool canSchedule() { return m_bCanSchedule; }
	void setState(enum state eCurState) { m_eCurState =eCurState; }
	

// Dialog Data
	//{{AFX_DATA(CElevatorDlg)
	enum { IDD = IDD_ELEVATOR_DIALOG };
	CStatic	m_conPsgNum;
	CStatic	m_conState;
	CColorStaticST	m_ElevatorBox;
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CElevatorDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	HICON m_hIcon;	
	CWnd* m_pParent;
	CStdioFile m_cLogFile;//日志文件
	CFileException m_Except;

protected:
	void gotoNextDest();

	// Generated message map functions
	//{{AFX_MSG(CElevatorDlg)
	virtual BOOL OnInitDialog();
	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	afx_msg void OnTimer(UINT nIDEvent);	
	afx_msg void OnDestroy();
	afx_msg void openDoor();
	afx_msg void closeDoor();
	afx_msg void OnBtnCreateFault();
	afx_msg void OnBtnCorrectFault();
	afx_msg void OnBtnPsgEnter();
	afx_msg void OnBtnPsgLeave();
	afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
	//}}AFX_MSG
	afx_msg void OnInnerBtnClk(UINT nID);
	DECLARE_MESSAGE_MAP()

private:
	int m_iElevatorNo;
	int m_iMaxPassengerNum;
	int m_iCurPassengerNum;
	int m_iCurFloor;
	int m_iNextDestFloor;
	enum state m_eCurState;
	enum state m_eOldState;
	enum direction m_eBackupDirection;
	bool m_bCanSchedule;	
	char str_arrElevatorName[ELEVATOR_NUM];

	//HBRUSH m_hbrush;
	
	//enum state m_eOldState;
	
	//窗体成员变量
	CButton* m_pButton[FLOOR_NUM];
	CStatic* m_pLabel[FLOOR_NUM];
	CString stateDespArr[8];

	//等待队列
	CUpWaitQueue* m_cUpWaitQueue;
	CDownWaitQueue* m_cDownWaitQueue;

private:
	//void gotoDestFloor(int iFloorNo);
	void enableRelateBtn(enum state eCurState, int iFloorNo);
	void Write2Log(CString content);	
	void buzz();
	//void OnePassengerEnter();
	//void OnePassengerLeave();
	
};

#endif // !defined(AFX_ELEVATORDLG_H__02CD205C_1566_449C_B58D_1BF712DC64AA__INCLUDED_)

⌨️ 快捷键说明

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