📄 class designview.cpp
字号:
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CClassDesignView message handlers
void CClassDesignView::OnLineBili() ///////////////执行直线关于比例变换的判断
{
CurrenDraw=m_bLine_bili; /////////响应函数值赋给switch(CurrenDraw)
ExchangeBiLi(); //////////调用对话框响应函数(自定义的比例变换函数)
Invalidate(); /////////刷新并回到重绘函数
// TODO: Add your command handler code here
}
void CClassDesignView::OnLineXduicheng() ///////////////执行直线关于X轴对称变换的判断
{
CurrenDraw=m_bLine_Xduicheng;
Invalidate();
}
void CClassDesignView::OnLineYduicheng() ///////////////执行直线关于Y轴对称变换的判断
{
CurrenDraw=m_bLine_Yduicheng;
Invalidate();
}
void CClassDesignView::OnLINEOrgDUICHENG() ///////////////执行直线关于原点对称变换的判断
{
CurrenDraw=m_bLine_Orgduicheng;
Invalidate();
}
void CClassDesignView::OnLineCuoqie() ///////////////执行直线关于错切变换的判断
{
CurrenDraw=m_bLine_CuoQie;
ExchangeCuoQie(); //////////调用对话框响应函数(自定义的错切变换函数)
Invalidate();
// TODO: Add your command handler code here
}
void CClassDesignView::OnLineXuanzhuang() ///////////////执行直线关于旋转变换的判断
{
CurrenDraw=m_bLine_Xuanzhuang;
ExchangeXuanZhuang(); //////////调用对话框响应函数(自定义的旋转变换函数)
Invalidate();
// TODO: Add your command handler code here
}
void CClassDesignView::OnLinePingyi() ///////////////执行直线关于平移变换的判断
{
CurrenDraw=m_bLine_Pingyi;
ExchangePingyi(); //////////调用对话框响应函数(自定义的平移变换函数)
Invalidate();
// TODO: Add your command handler code here
}
void CClassDesignView::OnPointXduicheng() ///////////////执行画点关于X轴对称变换的判断
{
CurrenDraw=m_bPoint_Xduicheng;
Invalidate();
// TODO: Add your command handler code here
}
void CClassDesignView::OnPointYduicheng() ///////////////执行画点关于Y轴对称变换的判断
{
CurrenDraw=m_bPoint_Yduicheng;
Invalidate();
// TODO: Add your command handler code here
}
void CClassDesignView::OnPOINTOrgDUICHENG() ///////////////执行画点关于原点对称变换的判断
{
CurrenDraw=m_bPoint_ORGduicheng;
Invalidate();
// TODO: Add your command handler code here
}
void CClassDesignView::OnPointPingyi() ///////////////执行画点平移变换的判断
{
CurrenDraw=m_bPoint_Pingyi;
ExchangePingyi();
Invalidate();
// TODO: Add your command handler code here
}
void CClassDesignView::OnPointXuanzhuang() ///////////////执行画点旋转变换的判断
{
CurrenDraw=m_bPoint_Xuanzhuang;
ExchangeXuanZhuang();
Invalidate();
// TODO: Add your command handler code here
}
void CClassDesignView::OnMultilineBili() ///////////////执行多边形比例变换的判断
{
CurrenDraw=m_bMultiline_Bili;
ExchangeBiLi();
Invalidate();
// TODO: Add your command handler code here
}
void CClassDesignView::OnMultilineXduicheng() ///////////////执行多边形X轴对称变换的判断
{
CurrenDraw=m_bMultiline_Xduicheng;
Invalidate();
// TODO: Add your command handler code here
}
void CClassDesignView::OnMULTILINEOrgDUICHENG() ///////////////执行多边形原点对称变换的判断
{
CurrenDraw=m_bMultiline_Orgduicheng;
Invalidate();
// TODO: Add your command handler code here
}
void CClassDesignView::OnMultilineYduicheng() ///////////////执行多边形Y轴对称变换的判断
{
CurrenDraw=m_bMultiline_Yduicheng;
Invalidate();
// TODO: Add your command handler code here
}
void CClassDesignView::OnMultilineCuoqie() ///////////////执行多边形错切变换的判断
{
CurrenDraw=m_bMultiline_Cuoqie;
ExchangeCuoQie();
Invalidate();
// TODO: Add your command handler code here
}
void CClassDesignView::OnMultilineXuanzhuang() ///////////////执行多边形旋转变换的判断
{
CurrenDraw=m_bMultiline_Xuanzhuang;
ExchangeXuanZhuang();
Invalidate();
// TODO: Add your command handler code here
}
void CClassDesignView::OnMultilinePingyi() ///////////////执行多边形平移变换的判断
{
CurrenDraw=m_bMultiline_Pingyi;
ExchangePingyi();
Invalidate();
// TODO: Add your command handler code here
}
void CClassDesignView::OnMultilinefuhe() ///////////////执行多边形复合变换的判断
{
CurrenDraw=m_bMultiline_fuhe;
ExchangeDataPolygonFH();
Invalidate();
// TODO: Add your command handler code here
}
inline void CClassDesignView::SetData(int (*Po)[3], int (*Pa)[3], int (*Pb)[3])
{
for(int i=0;i<=4;i++)
for(int j=0;j<=2;j++) ////////自定义内联函数利用三重循环完成矩阵相乘赋值
{
for(int k=0;k<=2;k++)
*(*(Pa+i)+j)+=(*(*(Pb+i)+k))*(*(*(Po+k)+j));
}
}
void CClassDesignView::OnPOINTqingping() //////自定义清屏函数,原理就是重绘坐标轴
{
CurrenDraw=POINTqingping;
Invalidate();
// TODO: Add your command handler code here
}
void CClassDesignView::OnLINEqingping() /////自定义清屏函数,原理就是重绘坐标轴
{
CurrenDraw=POINTqingping;
Invalidate();
// TODO: Add your command handler code here
}
void CClassDesignView::OnMULTILINEqingping()/////自定义清屏函数,原理就是重绘坐标轴
{
CurrenDraw=POINTqingping;
Invalidate();
// TODO: Add your command handler code here
}
void CClassDesignView::OnMouseMove(UINT nFlags, CPoint point)
/////以下代码是在状态栏上添加一个状态信息行,显示当前鼠标的位置
{
CString str;
CMainFrame *pFrame=(CMainFrame *)AfxGetApp()->m_pMainWnd;///获取状态栏指针
CStatusBar *pStatus=&pFrame->m_wndStatusBar;
if(pStatus) {
str.Format("x=%d",point.x-510);//显示X坐标
pStatus->SetPaneText(1,str);
str.Format("y=%d",-(point.y-323));//显示Y坐标
pStatus->SetPaneText(2,str);
}
// TODO: Add your message handler code here and/or call default
CView::OnMouseMove(nFlags, point);
}
void CClassDesignView::ExchangePingyi()//自定义函数,弹出对话框,并要求输入数据
{
ExchangeData dlg; //定义一个自定义类ExchangeData的一个对象
if(dlg.DoModal()==IDOK )//调用DoModal()进行判断后,弹出对话框
dfData1=dlg.m_Xpingyi;//接收数据,赋给CClassDesignView类的公有成员,得以输入矩阵数据
dfData2=dlg.m_Ypingyi;
}
void CClassDesignView::ExchangeCuoQie()//定义一个自定义类CuoQie的一个对象
{
CuoQie dlg;
if(dlg.DoModal()==IDOK )
dfData1=dlg.m_Xcuoqie;
dfData2=dlg.m_Ycuoqie;
}
void CClassDesignView::ExchangeBiLi()//定义一个自定义类BiLi的一个对象
{
BiLi dlg;
if(dlg.DoModal()==IDOK )
dfData1=dlg.m_bili;
}
void CClassDesignView::ExchangeXuanZhuang()//定义一个自定义类XuanZhuang的一个对象
{
XuanZhuang dlg;
if(dlg.DoModal()==IDOK )
dfData1=dlg.m_xuanzhuang;
}
void CClassDesignView::ExchangeDataPolygonFH()//定义一个自定义类PolygonFH的一个对象
{
PolygonFH dlg;
if(dlg.DoModal()==IDOK )
dfData1=dlg.m_fhbili;
dfData2=dlg.m_fhxpy;
dfData3=dlg.m_fhxz;
}
void CClassDesignView::OnUpdatePointXduicheng(CCmdUI* pCmdUI)
{
if( CurrenDraw==m_bPoint_Xduicheng)
pCmdUI->SetCheck(1);
else
pCmdUI->SetCheck(0);// TODO: Add your command update UI handler code here
}
void CClassDesignView::OnUpdatePointYduicheng(CCmdUI* pCmdUI)
{
if(CurrenDraw==m_bPoint_Yduicheng)
pCmdUI->SetCheck(1);
else
pCmdUI->SetCheck(0);// TODO: Add your command update UI handler code here
}
void CClassDesignView::OnUpdatePOINTOrgDUICHENG(CCmdUI* pCmdUI)
{
if( CurrenDraw==m_bPoint_ORGduicheng)
pCmdUI->SetCheck(1);
else
pCmdUI->SetCheck(0);// TODO: Add your command update UI handler code here
}
void CClassDesignView::OnUpdatePoint(CCmdUI* pCmdUI)
{
if(CurrenDraw==m_bPoint)
pCmdUI->SetCheck(1);// TODO: Add your command update UI handler code here
else
pCmdUI->SetCheck(0);
}
void CClassDesignView::OnUpdateLine(CCmdUI* pCmdUI)
{
if(CurrenDraw==m_bLine)
pCmdUI->SetCheck(1);// TODO: Add your command update UI handler code here
else
pCmdUI->SetCheck(0);
}
void CClassDesignView::OnUpdateLineXduicheng(CCmdUI* pCmdUI)
{
if(CurrenDraw==m_bLine_Xduicheng)
pCmdUI->SetCheck(1);// TODO: Add your command update UI handler code here
else
pCmdUI->SetCheck(0);
}
void CClassDesignView::OnUpdateLineYduicheng(CCmdUI* pCmdUI)
{
if(CurrenDraw==m_bLine_Yduicheng)
pCmdUI->SetCheck(1);// TODO: Add your command update UI handler code here
else
pCmdUI->SetCheck(0);
}
void CClassDesignView::OnUpdateLINEOrgDUICHENG(CCmdUI* pCmdUI)
{
if(CurrenDraw==m_bLine_Orgduicheng)
pCmdUI->SetCheck(1);// TODO: Add your command update UI handler code here
else
pCmdUI->SetCheck(0);
}
void CClassDesignView::OnUpdateMultiline(CCmdUI* pCmdUI)
{
if( CurrenDraw==m_bMultiline)
pCmdUI->SetCheck(1);// TODO: Add your command update UI handler code here
else
pCmdUI->SetCheck(0);
}
void CClassDesignView::OnUpdateMultilineXduicheng(CCmdUI* pCmdUI)
{
if(CurrenDraw==m_bMultiline_Xduicheng)
pCmdUI->SetCheck(1);// TODO: Add your command update UI handler code here
else
pCmdUI->SetCheck(0);
}
void CClassDesignView::OnUpdateMultilineYduicheng(CCmdUI* pCmdUI)
{
if(CurrenDraw==m_bMultiline_Yduicheng)
pCmdUI->SetCheck(1);// TODO: Add your command update UI handler code here
else
pCmdUI->SetCheck(0);
}
void CClassDesignView::OnUpdateMULTILINEOrgDUICHENG(CCmdUI* pCmdUI)
{
if(CurrenDraw==m_bMultiline_Orgduicheng)
pCmdUI->SetCheck(1);// TODO: Add your command update UI handler code here
else
pCmdUI->SetCheck(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -