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

📄 gmcaddoc.h

📁 《Visual C++.NET MFC类库应用详解》程序实例
💻 H
字号:
// GMCADDoc.h : interface of the CGMCADDoc class
//
/////////////////////////////////////////////////////////////////////////////

#if !defined(AFX_GMCADDOC_H__E2B3D3CA_E509_11D5_8CE4_E4B541D5F37A__INCLUDED_)
#define AFX_GMCADDOC_H__E2B3D3CA_E509_11D5_8CE4_E4B541D5F37A__INCLUDED_

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


class FPOINT
{
public:
	double x;
	double y;
};

class TempStruct
{
public:
	double xna1,yna1,xnb1,ynb1,xna2,yna2,xnb2,ynb2;
	//(xna1,yna1)为第一条线的起点,(xnb1,ynb1)为第一条线的终点, 
	//(xna2,yna2)为第二条线的起点,(xnb2,ynb2)为第二条线的终点
};
double Angle(double CX,double CY,double R,double px,double py);
void AngleArc(CDC *pDC,double X,double Y, double r,double a1,double a2);

void SER_Arc(CDC *pDC,double StartX, double StrartY,double EndX,double EndY,double CX,double CY,double R);
TempStruct offsetxy(char xx1,double xa1,double ya1,double xb1,double yb1,double xc1,double yc1,double r1,
			  char xx2,double xa2,double ya2,double xb2,double yb2,double xc2,double yc2,double r2,
			  double s, int jlh1,int jlh2);
void qgxdyj(CStdioFile *cf,double qdx,double qdy,double zdy);
FPOINT linecircle(double cx,double cy, double r, double k);
double Vol_YuanTai(double d1, double d2, double h);
double Area_YuanTai(double d1, double d2, double h);
double Vol_HuTai(double Axisx,double h, double r, double x0, double y0, double Y, 
		char symbol);
double Area_HuTai(double Axisx,double h, double r, double x0, double y0, double Y,
		char symbol);
void SymmetryLine(double cx,double bx,double by,double ex,double ey);
void SymmetryArc(CDC *pDC,double cx,double x0,double y0,double r,double bx,
		 double by,double ex,double ey,char symbol);

class CRevSurf : public CObject
{
public:
    char m_XX;
	double m_Bx,m_By,m_Ex,m_Ey;
    double m_H,PreDD,m_Vol,m_Area;
	CRevSurf(){}
	DECLARE_SERIAL(CRevSurf)
public:
    virtual void Drawing(CDC *pDC){}
	virtual void Serialize(CArchive &ar);
};

class CCuboid : public CRevSurf
{
protected:
	CCuboid(){}
	DECLARE_SERIAL(CCuboid)
public:
	CCuboid(double Bx,double By,double Ex,double Ey,double h,double predd,double Vol,double Area);
	void Drawing(CDC *pDC);
	virtual void Serialize(CArchive &ar);
};

class CHLine : public CRevSurf
{
protected:
	CHLine(){}
	DECLARE_SERIAL(CHLine)
public:
	CHLine(double Bx,double By,double Ex,double Ey,double h,double predd,double Vol,double Area);
	void Drawing(CDC *pDC);
	virtual void Serialize(CArchive &ar);
};

class CYuanTai : public CRevSurf
{
protected:
	CYuanTai(){}
	DECLARE_SERIAL(CYuanTai)
public:
	double m_Axisx;
	CYuanTai(double Bx,double By,double Ex,double Ey,double Ax,
		double h,double predd,double Vol,double Area);
	void Drawing(CDC *pDC);
	virtual void Serialize(CArchive &ar);
};

class CHuTai : public CRevSurf
{
public:
	double m_x0,m_y0,m_r;
	double m_Axisx;
	char m_LorR;
	CHuTai(){}
	DECLARE_SERIAL(CHuTai)
public:
	CHuTai(double Bx,double By,double Ex,double Ey,double Ax,double x0,
		double y0,double r, char LorR,double h,double predd,double Vol,double Area);
	void Drawing(CDC *pDC);
	virtual void Serialize(CArchive &ar);
};

class CPingDi : public CRevSurf
{
protected:
	CPingDi(){}
	DECLARE_SERIAL(CPingDi)
    double m_Ax,m_R1,m_R2;
	double m_x1,m_y1,m_x2,m_y2;
public:
	CPingDi(double Axisx,double Bx,double By,double xc,double yc,
		double x01,double y01,double r1,double x02,double y02,double r2,
		double predd,double h,double Vol,double Area);
	void Drawing(CDC *pDC);
	virtual void Serialize(CArchive &ar);
};

////////////////////////////////////////////////////////////////////////

class CGMCADDoc : public CDocument
{
protected: // create from serialization only
	CGMCADDoc();
	DECLARE_DYNCREATE(CGMCADDoc)
	CObArray m_ObArray;
    CObArray m_RedoObArray;

// Attributes
public:
    int m_DesignFinish;
    double m_TotalVolue;
	double m_TotalArea;
	double m_TotalH,m_RH;
    double m_StartX,m_StartY;
	double m_Axisx;
    double m_CenterY;
    double PreDD;
	int CurrentDesign;
	int blf;
// Operations
public:
    void AddRevSurf(CRevSurf *pRevSurf);
	CRevSurf *GetRevSurf(int index);
	int GetRevSurfNumber();

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CGMCADDoc)
	public:
	virtual BOOL OnNewDocument();
	virtual void Serialize(CArchive& ar);
	virtual void DeleteContents();
	//}}AFX_VIRTUAL

// Implementation
public:
	virtual ~CGMCADDoc();
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif

protected:

// Generated message map functions
protected:
	//{{AFX_MSG(CGMCADDoc)
	afx_msg void OnEditUndo();
	afx_msg void OnUpdateEditUndo(CCmdUI* pCmdUI);
	afx_msg void OnEditRedo();
	afx_msg void OnUpdateEditRedo(CCmdUI* pCmdUI);
	afx_msg void OnTranRefsurf();
	afx_msg void OnUpdateTranRefsurf(CCmdUI* pCmdUI);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// MS Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_GMCADDOC_H__E2B3D3CA_E509_11D5_8CE4_E4B541D5F37A__INCLUDED_)

⌨️ 快捷键说明

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