77范文网 - 专业文章范例文档资料分享平台

MFC绘图版 软件说明书(2)

来源:网络收集 时间:2019-02-21 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

广西工学院课程设计用纸

((float)(m_FirstPoint.y)-(float)(m_SecondPoint.y))*flLength/flRlt; float fl1X = (tmpX-(float)(m_SecondPoint.x))*cos(-flAngle/2) (tmpY-(float)(m_SecondPoint.y))*sin(-flAngle/2) + (float)(m_SecondPoint.x); float fl1Y = (tmpY-(float)(m_SecondPoint.y))*cos(-flAngle/2) (tmpX-(float)(m_SecondPoint.x))*sin(-flAngle/2) + (float)(m_SecondPoint.y); float fl2X = (tmpX-(float)(m_SecondPoint.x))*cos(flAngle/2) (tmpY-(float)(m_SecondPoint.y))*sin(flAngle/2) + (float)(m_SecondPoint.x); float fl2Y = (tmpY-(float)(m_SecondPoint.y))*cos(flAngle/2) (tmpX-(float)(m_SecondPoint.x))*sin(flAngle/2) + (float)(m_SecondPoint.y); pDC->SelectObject(&hpen); pDC->MoveTo(m_FirstPoint); pDC->LineTo(m_SecondPoint); pDC->MoveTo(m_SecondPoint.x,m_SecondPoint.y); pDC->LineTo(fl1X,fl1Y); pDC->MoveTo(m_SecondPoint.x,m_SecondPoint.y); pDC->LineTo(fl2X,fl2Y); pDC->MoveTo(fl1X,fl1Y); pDC->LineTo(fl2X,fl2Y); } break; case 4: { pDC->SelectObject(&hpen); pDC->Ellipse(CRect(m_FirstPoint,m_SecondPoint)); pDC->SelectObject(pOldBrush); } break; case 5: { pDC->SelectObject(&hpen); pDC->Ellipse(CRect(m_FirstPoint,m_SecondPoint)); pDC->SelectObject(pOldBrush); } break; case 6: { pDC->SelectObject(&hpen); pDC->Rectangle(CRect(m_FirstPoint,m_SecondPoint));

第 页 共 页

- +

- +

广西工学院课程设计用纸

pDC->SelectObject(pOldBrush); } break; } }

void CGraph::Serialize(CArchive &ar) {//ó?CArchive??DD???t2ù×÷ //>>μ??3Dòoí<<μ??3Dòòa?àí? if(ar.IsStoring()) { ar<>m_DrawIndex>>m_FirstPoint>>m_SecondPoint>>m_color>>m_nLineWidth>>m_nLineStyle;; } }

任意曲线类 class CStroke : public CObject//è?òa?ú??μ?àà {

public: CStroke(UINT nPenWidth,COLORREF color);

protected: CStroke(); DECLARE_SERIAL(CStroke)

// Attributes protected: UINT m_nPenWidth; // one pen width applies to entire stroke COLORREF m_color; //颜色 public: CArray m_pointArray; // series of connected points

// Operations public: BOOL DrawStroke(CDC* pDC);

第 页 共 页

广西工学院课程设计用纸

public: virtual void Serialize(CArchive& ar); };

实现文件CStroke.cpp

IMPLEMENT_SERIAL(CStroke, CObject, 2) CStroke::CStroke() { // This empty constructor should be used by serialization only }

CStroke::CStroke(UINT nPenWidth,COLORREF color) { m_nPenWidth = nPenWidth; m_color = color; }

void CStroke::Serialize(CArchive& ar) { if (ar.IsStoring()) { ar << (WORD)m_nPenWidth << m_color; m_pointArray.Serialize(ar); } else { WORD w; ar >> w >> m_color; m_nPenWidth = w; m_pointArray.Serialize(ar); } }

BOOL CStroke::DrawStroke(CDC* pDC) { CPen penStroke; if (!penStroke.CreatePen(PS_SOLID, m_nPenWidth, m_color)) return FALSE; CPen* pOldPen = pDC->SelectObject(&penStroke); pDC->MoveTo(m_pointArray[0]); for (int i=1; i < m_pointArray.GetSize(); i++) { pDC->LineTo(m_pointArray[i]); }

第 页 共 页

广西工学院课程设计用纸

}

pDC->SelectObject(pOldPen); return TRUE;

线形状和线宽设置对话框类 class CSettingDlg : public CDialog {

public: CSettingDlg(CWnd* pParent = NULL); //{{AFX_DATA(CSettingDlg) enum { IDD = IDD_DIALOG1 }; UINT m_nLineWidth; //线宽 int m_nLineStyle; //线形状 COLORREF m_color; //线的颜色 //}}AFX_DATA // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CSettingDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); //}}AFX_VIRTUAL protected: // Generated message map functions //{{AFX_MSG(CSettingDlg) afx_msg void OnPaint(); //}}AFX_MSG DECLARE_MESSAGE_MAP() };

实现文件CSettingDlg.cpp

CSettingDlg::CSettingDlg(CWnd* pParent /*=NULL*/) : CDialog(CSettingDlg::IDD, pParent) { //{{AFX_DATA_INIT(CSettingDlg) m_nLineWidth = 0; m_nLineStyle = -1; //}}AFX_DATA_INIT }

void CSettingDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX);

第 页 共 页

// DDX/DDV support 广西工学院课程设计用纸

//{{AFX_DATA_MAP(CSettingDlg) DDX_Text(pDX, IDC_EDIT2, m_nLineWidth); DDX_Radio(pDX, IDC_RADIO1, m_nLineStyle); //}}AFX_DATA_MAP }

BEGIN_MESSAGE_MAP(CSettingDlg, CDialog) //{{AFX_MSG_MAP(CSettingDlg) ON_WM_PAINT() //}}AFX_MSG_MAP END_MESSAGE_MAP()

// CSettingDlg message handlers void CSettingDlg::OnPaint()

{//这里添加了代码 用于对话框的示例显示 CPaintDC dc(this); // device context for painting // TODO: Add your message handler code here UpdateData(); CPen pen(m_nLineStyle,m_nLineWidth,m_color);//定义画笔 dc.SelectObject(&pen); CRect rect;//定义矩形区域 GetDlgItem(IDC_STATIC1)->GetWindowRect(&rect);//得到示例静态空间的矩形区域 ScreenToClient(&rect);///坐标转换 dc.MoveTo(rect.left+20,rect.top+rect.Height()/2); dc.LineTo(rect.right-20,rect.top+rect.Height()/2); // Do not call CDialog::OnPaint() for painting messages }

在CMainFrame中添加的代码 添加成员变量CToolBar m_newToolBar 一个新的绘图工具栏 在CMainFrame中的OnCreat()函数中添加的代码: CSplashWnd::ShowSplashScreen(this);//启动画面 Sleep(1000);//程序暂停

//------------------新建画图工具栏-----------------------------------//

if (!m_newToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || !m_newToolBar.LoadToolBar(IDR_DRAW_TOOLBAR)) { TRACE0(\ return -1; // fail to create }

第 页 共 页

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库MFC绘图版 软件说明书(2)在线全文阅读。

MFC绘图版 软件说明书(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/483644.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: