📄 gmcadview.cpp
字号:
dc.LineTo(128,74);
dc.TextOut(100,65,"R1");
dc.MoveTo(90,48);
dc.LineTo(130,48);
dc.MoveTo(95,43);
dc.LineTo(95,53);
dc.MoveTo(120,48);
dc.LineTo(120,62);
dc.MoveTo(120,48);
dc.LineTo(117,52);
dc.MoveTo(120,48);
dc.LineTo(123,52);
dc.MoveTo(120,62);
dc.LineTo(117,58);
dc.MoveTo(120,62);
dc.LineTo(123,58);
dc.TextOut(124,48,"H1");
}
void CGMCADView::OnHLine()
{
// TODO: Add your control notification handler code here
m_XianXing=XIANXING_HLINE;
m_HHEdit.EnableWindow(FALSE);
m_HHStatic.EnableWindow(FALSE);
m_DDEdit.EnableWindow(FALSE);
m_DDStatic.EnableWindow(FALSE);
m_RREdit.EnableWindow(FALSE);
m_RRStatic.EnableWindow(FALSE);
m_RPEdit.EnableWindow(FALSE);
m_RR2Edit.EnableWindow(FALSE);
m_RR2Static.EnableWindow(FALSE);
m_RP2Edit.EnableWindow(FALSE);
m_HH1Edit.EnableWindow(FALSE);
m_HH1Static.EnableWindow(FALSE);
m_HH2Edit.EnableWindow(FALSE);
m_HH2Static.EnableWindow(FALSE);
CGMCADDoc* pDoc = GetDocument();
if((pDoc->CurrentDesign==CHUMU_DESIGN) && (HLineNumber==0))
{
m_TipStatic.SetWindowText("请输入总高、直径D。");
m_HHEdit.EnableWindow(TRUE);
m_DDEdit.EnableWindow(TRUE);
m_HHStatic.EnableWindow(TRUE);
m_DDStatic.EnableWindow(TRUE);
m_HHStatic.SetWindowText("总高:");
m_DDStatic.SetWindowText("直径D:");
}
else
{
m_TipStatic.SetWindowText("用横线封底,结束设计。");
}
CClientDC dc(this);
dc.SetTextColor(RGB(0,255,0));
CBrush NewBrush,*pOldBrush;
NewBrush.CreateSolidBrush(RGB(0,0,0));
pOldBrush=dc.SelectObject(&NewBrush);
dc.Rectangle(&m_ParaShowArea);
dc.SelectObject(pOldBrush);
dc.SetBkMode(TRANSPARENT);
CPen RedPen,GreenPen,*pOldPen,*temppen;
RedPen.CreatePen(PS_SOLID,1,RGB(255,0,0));
pOldPen=dc.SelectObject(&RedPen);
dc.MoveTo(60,90);
dc.LineTo(190,90);
GreenPen.CreatePen(PS_SOLID,1,RGB(0,255,0));
temppen=dc.SelectObject(&GreenPen);
dc.MoveTo(59,92);
dc.LineTo(59,132);
dc.MoveTo(191,92);
dc.LineTo(191,132);
dc.MoveTo(62,120);
dc.LineTo(120,120);
dc.MoveTo(132,120);
dc.LineTo(188,120);
dc.MoveTo(60,120); // H的两个箭头
dc.LineTo(65,116);
dc.MoveTo(60,120);
dc.LineTo(65,124);
dc.MoveTo(190,120);
dc.LineTo(185,116);
dc.MoveTo(190,120);
dc.LineTo(185,124);
dc.TextOut(122,113,"D");
dc.SelectObject(pOldPen);
}
void CGMCADView::OnRect()
{
// TODO: Add your control notification handler code here
m_XianXing=XIANXING_RECT;
m_TipStatic.SetWindowText("请输入瓶高、口高、口径和颈径。");
m_HHEdit.EnableWindow(TRUE);
m_DDEdit.EnableWindow(TRUE);
m_RREdit.EnableWindow(TRUE);
m_RR2Edit.EnableWindow(TRUE);
m_HHStatic.EnableWindow(TRUE);
m_DDStatic.EnableWindow(TRUE);
m_RRStatic.EnableWindow(TRUE);
m_RR2Static.EnableWindow(TRUE);
m_HHStatic.SetWindowText("瓶高:");
m_DDStatic.SetWindowText("口高:");
m_RRStatic.SetWindowText("口径:");
m_RR2Static.SetWindowText("颈径:");
m_RPEdit.EnableWindow(FALSE);
m_RP2Edit.EnableWindow(FALSE);
m_HH1Edit.EnableWindow(FALSE);
m_HH2Edit.EnableWindow(FALSE);
m_HH1Static.EnableWindow(FALSE);
m_HH2Static.EnableWindow(FALSE);
CClientDC dc(this);
dc.SetTextColor(RGB(0,255,0));
CBrush NewBrush,*pOldBrush;
NewBrush.CreateSolidBrush(RGB(0,0,0));
pOldBrush=dc.SelectObject(&NewBrush);
dc.Rectangle(&m_ParaShowArea);
dc.SelectObject(pOldBrush);
dc.SetBkMode(TRANSPARENT);
CPen RedPen,GreenPen,*pOldPen,*temppen;
RedPen.CreatePen(PS_SOLID,1,RGB(255,0,0));
pOldPen=dc.SelectObject(&RedPen);
dc.MoveTo(50,50);
dc.LineTo(150,50);
dc.LineTo(150,100);
dc.LineTo(50,100);
dc.LineTo(50,50);
GreenPen.CreatePen(PS_SOLID,1,RGB(0,255,0));
temppen=dc.SelectObject(&GreenPen);
dc.MoveTo(49,102);
dc.LineTo(49,132);
dc.MoveTo(151,102);
dc.LineTo(151,132);
dc.MoveTo(52,120);
dc.LineTo(100,120);
dc.MoveTo(114,120);
dc.LineTo(148,120);
dc.MoveTo(50,120); // D的两个箭头
dc.LineTo(55,116);
dc.MoveTo(50,120);
dc.LineTo(55,124);
dc.MoveTo(150,120);
dc.LineTo(145,116);
dc.MoveTo(150,120);
dc.LineTo(145,124);
dc.TextOut(103,113,"D");
dc.MoveTo(151,50);
dc.LineTo(180,50);
dc.MoveTo(151,100);
dc.LineTo(180,100);
dc.MoveTo(170,50);
dc.LineTo(170,70);
dc.MoveTo(170,80);
dc.LineTo(170,100);
dc.MoveTo(170,50); // H的两个箭头
dc.LineTo(166,55);
dc.MoveTo(170,50);
dc.LineTo(174,55);
dc.MoveTo(170,100);
dc.LineTo(166,95);
dc.MoveTo(170,100);
dc.LineTo(174,95);
dc.TextOut(165,69,"H");
dc.SelectObject(pOldPen);
}
void CGMCADView::OnPd()
{
// TODO: Add your control notification handler code here
m_XianXing=XIANXING_PD;
m_TipStatic.SetWindowText("请输入高度H、半径R。");
m_HHEdit.EnableWindow(TRUE);
m_RREdit.EnableWindow(TRUE);
m_HHStatic.EnableWindow(TRUE);
m_RRStatic.EnableWindow(TRUE);
m_HHStatic.SetWindowText("高度H:");
m_RRStatic.SetWindowText("半径R:");
m_DDEdit.EnableWindow(FALSE);
m_RPEdit.EnableWindow(FALSE);
m_RR2Edit.EnableWindow(FALSE);
m_RP2Edit.EnableWindow(FALSE);
m_HH1Edit.EnableWindow(FALSE);
m_HH2Edit.EnableWindow(FALSE);
m_DDStatic.EnableWindow(FALSE);
m_RR2Static.EnableWindow(FALSE);
m_HH1Static.EnableWindow(FALSE);
m_HH2Static.EnableWindow(FALSE);
CClientDC dc(this);
dc.SetTextColor(RGB(0,255,0));
CBrush NewBrush,*pOldBrush;
NewBrush.CreateSolidBrush(RGB(0,0,0));
pOldBrush=dc.SelectObject(&NewBrush);
dc.Rectangle(&m_ParaShowArea);
dc.SelectObject(pOldBrush);
dc.SetBkMode(TRANSPARENT);
CPen RedPen,YellowPen,GreenPen,*pOldPen,*temppen;
RedPen.CreatePen(PS_SOLID,1,RGB(255,0,0));
pOldPen=dc.SelectObject(&RedPen);
dc.Arc(62,69,174,181,159,75,78,75);
YellowPen.CreatePen(PS_SOLID,1,RGB(255,255,0));
temppen=dc.SelectObject(&YellowPen);
dc.Arc(46,38,94,86,51,77,79,75);
dc.Arc(140,38,188,86,156,77,185,75);
GreenPen.CreatePen(PS_SOLID,1,RGB(0,255,0));
temppen=dc.SelectObject(&GreenPen);
dc.MoveTo(118,70);
dc.LineTo(108,110);
dc.MoveTo(118,70);
dc.LineTo(114,75);
dc.MoveTo(118,70);
dc.LineTo(122,75);
dc.TextOut(103,113,"R");
dc.MoveTo(118,70);
dc.LineTo(210,70);
dc.MoveTo(165,86);
dc.LineTo(210,86);
dc.MoveTo(190,70);
dc.LineTo(190,86);
dc.MoveTo(190,70);
dc.LineTo(186,75);
dc.MoveTo(190,70);
dc.LineTo(194,75);
dc.MoveTo(190,86);
dc.LineTo(186,81);
dc.MoveTo(190,86);
dc.LineTo(194,81);
dc.TextOut(195,71,"H");
dc.SelectObject(pOldPen);
}
void CGMCADView::OnDesignChongtou()
{
// TODO: Add your command handler code here
CGMCADDoc* pDoc = GetDocument();
pDoc->CurrentDesign=CHONGTOU_DESIGN;
IsDesigning=1;
m_TipStatic.SetWindowText("请先选择“H1”线型开始冲头形腔设计。");
m_OKButton.SetWindowText("结 束 设 计");
}
void CGMCADView::OnUpdateDesignChongtou(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->Enable(!IsDesigning && !XGTTesting);
}
void CGMCADView::OnDesignChumu()
{
// TODO: Add your command handler code here
CGMCADDoc* pDoc = GetDocument();
pDoc->CurrentDesign=CHUMU_DESIGN;
IsDesigning=1;
m_TipStatic.SetWindowText("请先选择“横线”线型开始初模形腔设计。");
m_OKButton.SetWindowText("结 束 设 计");
}
void CGMCADView::OnUpdateDesignChumu(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->Enable(!IsDesigning && !XGTTesting);
}
void CGMCADView::OnDesignPingxing()
{
// TODO: Add your command handler code here
CGMCADDoc* pDoc = GetDocument();
pDoc->CurrentDesign=PINGXING_DESIGN;
IsDesigning=1;
m_TipStatic.SetWindowText("请先选择“瓶口”线型开始成模形腔(瓶形)设计。");
m_OKButton.SetWindowText("结 束 设 计");
}
void CGMCADView::OnUpdateDesignPingxing(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->Enable(!IsDesigning && !XGTTesting);
}
void CGMCADView::OnChangeHh()
{
// TODO: Add your control notification handler code here
int temp;
CString str;
temp=GetDlgItemText(IDC_HH,str);
m_HH=atof(str);
}
void CGMCADView::OnChangeDd()
{
// TODO: Add your control notification handler code here
int temp;
CString str;
temp=GetDlgItemText(IDC_DD,str);
m_DD=atof(str);
}
void CGMCADView::OnChangeRr()
{
// TODO: Add your control notification handler code here
int temp;
CString str;
temp=GetDlgItemText(IDC_RR,str);
m_RR=atof(str);
}
void CGMCADView::OnChangeRp()
{
// TODO: Add your control notification handler code here
int temp;
CString str;
temp=GetDlgItemText(IDC_RP,str);
m_RP=str;
}
void CGMCADView::OnChangeRr2()
{
// TODO: Add your control notification handler code here
int temp;
CString str;
temp=GetDlgItemText(IDC_RR2,str);
m_RR2=atof(str);
}
void CGMCADView::OnChangeRp2()
{
// TODO: Add your control notification handler code here
int temp;
CString str;
temp=GetDlgItemText(IDC_RP2,str);
m_RP2=str;
}
void CGMCADView::OnChangeHh1()
{
// TODO: Add your control notification handler code here
int temp;
CString str;
temp=GetDlgItemText(IDC_HH1,str);
m_HH1=atof(str);
}
void CGMCADView::OnChangeHh2()
{
// TODO: Add your control notification handler code here
int temp;
CString str;
temp=GetDlgItemText(IDC_HH2,str);
m_HH2=atof(str);
}
void CGMCADView::OnChangeEditVol()
{
// TODO: Add your control notification handler code here
int temp;
CString str;
temp=GetDlgItemText(IDC_EDIT_VOL,str);
m_XXVol=atof(str);
}
void CGMCADView::OnChangeEditArea()
{
// TODO: Add your control notification handler code here
int temp;
CString str;
temp=GetDlgItemText(IDC_EDIT_AREA,str);
m_XXArea=atof(str);
}
void CGMCADView::ClearAll()
{
m_HHEdit.SetWindowText("");
m_DDEdit.SetWindowText("");
m_RREdit.SetWindowText("");
m_RPEdit.SetWindowText("");
m_RR2Edit.SetWindowText("");
m_RP2Edit.SetWindowText("");
m_HH1Edit.SetWindowText("");
m_HH2Edit.SetWindowText("");
}
void CGMCADView::OnParainputok()
{
// TODO: Add your control notification handler code here
// 选择各线型进行设计,选择瓶底或横线结束设计
if(IsDesigning)
{
CGMCADDoc* pDoc = GetDocument();
m_VolEdit.EnableWindow(TRUE);
m_AreaEdit.EnableWindow(TRUE);
m_XXVStatic.SetWindowText("本线型体积:");
m_XXAStatic.SetWindowText("本线型面积:");
m_XXVUnitStatic.SetWindowText("立方毫米");
m_XXAUnitStatic.SetWindowText("平方毫米");
CRevSurf *pRevSurf;
CClientDC dc(this);
dc.SetMapMode(MM_ANISOTROPIC);
dc.SetWindowExt(50,-50);
dc.SetViewportExt(50,50);
POINT temp;
temp.x=m_Axisx; // m_Axisx为MM_TEXT下的绘图区中轴x值
temp.y=m_CenterY; // m_CenterY为MM_TEXT下的绘图区中值y
dc.DPtoLP(&temp);
double CenterY=temp.y; // CenterY为MM_ANISOTROPIC下的绘图区中值y
double Axisx=temp.x; // Axisx为MM_ANISOTROPIC下的绘图区中轴x值
BeginX=pDoc->m_StartX;
BeginY=pDoc->m_StartY;
double Vol,Area;
switch(m_XianXing)
{
case XIANXING_X:
{
pDoc->m_RH=pDoc->m_RH-m_HH;
EndX=Axisx-m_DD/2.0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -