欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    实验五 菜单工具栏状态栏程序设计.docx

    • 资源ID:10713729       资源大小:18.25KB        全文页数:17页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    实验五 菜单工具栏状态栏程序设计.docx

    1、实验五 菜单工具栏状态栏程序设计实验五 菜单、工具栏、状态栏程序设计【实验目的】1、 掌握主菜单程序设计方法2、 学会工具栏程序设计3、 掌握快捷菜单程序设计方法4、 学会增加状态栏窗格【实验内容】1、 建立一个单文档应用程序,添加菜单显示,其中包含“文本”和“图形”2个菜单项,分别输出文本和图形。参考代码:void CSDIDispView:OnText() / TODO: Add your command handler code here CClientDC dc(this); dc.TextOut(20,20,我已经学会了如何设计菜单程序!); void CSDIDispView:On

    2、Picture() / TODO: Add your command handler code here CClientDC dc(this); CBrush *BrushOld,BrushNew; BrushNew.CreateSolidBrush(RGB(255,0,0); BrushOld=dc.SelectObject(&BrushNew); /选用画刷 dc.Rectangle(50,50,250,150); dc.SelectObject(BrushOld); /还原画刷 BrushNew.DeleteObject(); /释放画刷2、 为上述应用程序添加菜单控制功能,选中“文本”

    3、时,“图形”菜单项无效;当选中“图形”时,“文本”菜单项无效。参考代码:void CSDIDispView:OnText() / TODO: Add your command handler code here CClientDC dc(this); dc.TextOut(20,20,我已经学会了如何设计菜单程序!); m_picture=false;void CSDIDispView:OnPicture() / TODO: Add your command handler code here CClientDC dc(this); CBrush *BrushOld,BrushNew; Bru

    4、shNew.CreateSolidBrush(RGB(255,0,0); BrushOld=dc.SelectObject(&BrushNew); /选用画刷 dc.Rectangle(50,50,250,150); dc.SelectObject(BrushOld); /还原画刷 BrushNew.DeleteObject(); /释放画刷 m_text=false;void CSDIDispView:OnUpdateText(CCmdUI* pCmdUI) / TODO: Add your command update UI handler code here pCmdUI-Enable(

    5、m_text);void CSDIDispView:OnUpdatePicture(CCmdUI* pCmdUI) / TODO: Add your command update UI handler code here pCmdUI-Enable(m_picture);3、为上述应用程序工具栏添加两个工具按钮,单击第一个按钮,在视图窗口中弹出“打开文件”对话框,单击第二个按钮,在消息框中显示文本信息。参考代码:void CXiTi4_3View:OnText() / TODO: Add your command handler code here MessageBox(我已经学会了使用默认工

    6、具栏了!);4、创建一个单文档应用程序,在状态栏中显示鼠标光标的坐标。(1)在MainFrm.h中将状态栏对象修改为publicpublic: CStatusBar m_wndStatusBar;(2)在MainFrm.cpp中添加状态栏窗格ID_INDICATOR_COR(3)在串表中设置添加窗格的字符串格式(4)添加WM_MOUSEMOVE消息及其相应函数void CXiTi4_4View:OnMouseMove(UINT nFlags, CPoint point) / TODO: Add your message handler code here and/or call default

    7、 CString str; CMainFrame *pFrame=(CMainFrame*)AfxGetApp()-m_pMainWnd; CStatusBar *pStatus=&pFrame-m_wndStatusBar; str.Format(%d,%d,point.x,point.y); pStatus-SetPaneText(pStatus-CommandToIndex(ID_INDICATOR_COR),str); CView:OnMouseMove(nFlags, point);5、 建立一个单文档应用程序,添加“时间”主菜单项,包含时、分、秒三个菜单项,分别在视图窗口中显示当前

    8、系统时间的时、分和秒。添加相应的工具栏和快捷菜单,并在状态栏中显示系统时间。(1)添加菜单项、添加工具栏插入工具栏并编辑,添加工具栏类定义工具栏对象: CToolBar m_wndToolBar, m_wndToolBar1;加载工具栏:OnCreate( ): if (!m_wndToolBar1.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) | !m_wndToolBar1.LoadT

    9、oolBar(IDR_TOOLBAR1) TRACE0(Failed to create toolbarn); return -1; / fail to create m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); m_wndToolBar1.EnableDocking(CBRS_ALIGN_ANY); EnableDocking(CBRS_ALIGN_ANY); DockControlBar(&m_wndToolBar); DockControlBar(&m_wndToolBar1);设置时钟: SetTimer(1,1000,NULL);(2)添加状

    10、态栏添加状态栏窗格:ID_INDICATOR_TIME,设置字符串格式状态栏数据成员设置为公有成员void CMainFrame:OnTimer(UINT nIDEvent) / TODO: Add your message handler code here and/or call default CTime time; time=CTime:GetCurrentTime();/获得系统时间 CString str=time.Format(%H:%M:%S);/将系统时间转换成时:分:秒格式的字符串 m_wndStatusBar.SetPaneText(m_wndStatusBar.Comm

    11、andToIndex(ID_INDICATOR_TIME),str);/更新时间窗格显示的时间内容 CFrameWnd:OnTimer(nIDEvent);void CMainFrame:OnClose() / TODO: Add your message handler code here and/or call default KillTimer(1);/关闭计时器 CFrameWnd:OnClose();(3)添加菜单消息响应定义CTime类的对象time添加菜单消息响应函数:void CSTimeView:OnSecond() / TODO: Add your command hand

    12、ler code here time=CTime:GetCurrentTime();/获得系统时间 CString str=time.Format(%S);/将系统时间转换成秒格式的字符串 CClientDC dc(this); dc.TextOut(100,100,现在是+str+秒); void CSTimeView:OnHour() / TODO: Add your command handler code here time=CTime:GetCurrentTime();/获得系统时间 CString str=time.Format(%H);/将系统时间转换成时格式的字符串 CClie

    13、ntDC dc(this); dc.TextOut(100,100,现在是+str+时); void CSTimeView:OnMinute() / TODO: Add your command handler code here time=CTime:GetCurrentTime();/获得系统时间 CString str=time.Format(%M);/将系统时间转换成分格式的字符串 CClientDC dc(this); dc.TextOut(100,100,现在是+str+分); (4)添加快捷菜单设计快捷菜单添加WM_ContextMenu消息响应函数:void CSTimeVie

    14、w:OnContextMenu(CWnd*, CPoint point) / CG: This block was added by the Pop-up Menu component if (point.x = -1 & point.y = -1) /keystroke invocation CRect rect; GetClientRect(rect); ClientToScreen(rect); point = rect.TopLeft(); point.Offset(5, 5); CMenu menu; VERIFY(menu.LoadMenu(CG_IDR_POPUP_STIME_V

    15、IEW); CMenu* pPopup = menu.GetSubMenu(0); ASSERT(pPopup != NULL); CWnd* pWndPopupOwner = this; while (pWndPopupOwner-GetStyle() & WS_CHILD) pWndPopupOwner = pWndPopupOwner-GetParent(); pPopup-TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, pWndPopupOwner); 6、 绘制正弦和余弦曲线,设置线型和颜色的变换。1

    16、)添加菜单添加工具栏资源添加快捷菜单资源2)加载工具栏:Mainfrm.h:CToolBar m_wndToolBar1;Mainfrm.cpp:Oncreate:if (!m_wndToolBar1.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) | !m_wndToolBar1.LoadToolBar(IDR_TOOLBAR1) TRACE0(Failed to create toolb

    17、arn); return -1; / fail to create / TODO: Delete these three lines if you dont want the toolbar to / be dockable m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); m_wndToolBar1.EnableDocking(CBRS_ALIGN_ANY); EnableDocking(CBRS_ALIGN_ANY); DockControlBar(&m_wndToolBar); DockControlBar(&m_wndToolBar1);3)加载快

    18、捷菜单:添加视图类得wm_context消息void CP1View:OnContextMenu(CWnd* pWnd, CPoint point) / TODO: Add your message handler code here CMenu menu,*pPopup; menu.LoadMenu(IDR_MENU1); /加载快捷菜单 pPopup = menu.GetSubMenu(0); CWnd* pWndPopupOwner = this; pWndPopupOwner = pWndPopupOwner-GetParent(); /显示快捷菜单 pPopup-TrackPopup

    19、Menu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point.x,point.y,pWndPopupOwner);4)添加视图类的成员变量及成员函数Cview.hconst double PI=3.1416;public: int m_able; int m_typ; int m_wid; COLORREF m_col; double calsin(int x); double calcos(int x); void drawcurve(CDC* pDC); void drawline(CDC* pDC, int x1,int y1,int x2,int y2); void

    20、 drawaxis(CDC* pDC);Cview.cppCCurveView:CCurveView() / TODO: add construction code here m_typ=0; m_col=RGB(0,0,0); m_wid=1; m_able=0;void CCurveView:OnDraw(CDC* pDC) CCurveDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); / TODO: add draw code for native data here drawcurve(pDC);double CCurveView:calsi

    21、n(int x) double y; y=sin(x*PI/180); return y;double CCurveView:calcos(int x) double y; y=cos(x*PI/180); return y;void CCurveView:drawaxis(CDC *pDC) CString str; CFont myfont,*oldfont; myfont.CreatePointFont(80,Arial,pDC); oldfont=pDC-SelectObject(&myfont); drawline(pDC,50,10,50,290); drawline(pDC,45

    22、,150,780,150); for(int i=50;iTextOut(i,155,str); for(i=0;iTextOut(15,45+20*i,str); else pDC-TextOut(15,45+20*i,0); pDC-SelectObject(oldfont); myfont.DeleteObject();void CCurveView:drawline(CDC* pDC,int x1, int y1, int x2, int y2) pDC-MoveTo(x1,y1); pDC-LineTo(x2,y2);void CCurveView:drawcurve(CDC* pD

    23、C) drawaxis(pDC); CPoint point750; CPen mypen,*oldpen; mypen.CreatePen(PS_SOLID,m_wid,m_col); oldpen=pDC-SelectObject(&mypen); for(int i=0;i722;i+) pointi.x=i+50; if(m_typ=1) pointi.y=(int)(150-calsin(i)*100); else if(m_typ=2) pointi.y=(int)(150-calcos(i)*100); for(i=0;iSelectObject(oldpen); mypen.D

    24、eleteObject();5)添加菜单消息响应函数void CCurveView:OnColb() / TODO: Add your command handler code here m_col=RGB(0,0,255); Invalidate();void CCurveView:OnUpdateColb(CCmdUI* pCmdUI) / TODO: Add your command update UI handler code here pCmdUI-Enable(m_able); if(m_col=RGB(0,0,255) pCmdUI-SetCheck(true); else pC

    25、mdUI-SetCheck(false);void CCurveView:OnColr() / TODO: Add your command handler code here m_col=RGB(255,0,0); Invalidate();void CCurveView:OnUpdateColr(CCmdUI* pCmdUI) / TODO: Add your command update UI handler code here pCmdUI-Enable(m_able); if(m_col=RGB(255,0,0) pCmdUI-SetCheck(true); else pCmdUI-

    26、SetCheck(false);void CCurveView:OnCos() / TODO: Add your command handler code here m_typ=2; m_able=1; Invalidate();void CCurveView:OnSin() / TODO: Add your command handler code here m_typ=1; m_able=1; Invalidate();void CCurveView:OnWidsp2() / TODO: Add your command handler code here m_wid=2; Invalid

    27、ate();void CCurveView:OnUpdateWidsp2(CCmdUI* pCmdUI) / TODO: Add your command update UI handler code here pCmdUI-Enable(m_able); if(m_wid=2) pCmdUI-SetCheck(true); else pCmdUI-SetCheck(false);void CCurveView:OnWidsp3() / TODO: Add your command handler code here m_wid=3; Invalidate();void CCurveView:

    28、OnUpdateWidsp3(CCmdUI* pCmdUI) / TODO: Add your command update UI handler code here pCmdUI-Enable(m_able); if(m_wid=3) pCmdUI-SetCheck(true); else pCmdUI-SetCheck(false);6)添加状态栏窗格mainfrm.cpp:ID_INDICATOR_PROMPT Maifrm.cpp:public: CStatusBar m_wndStatusBar;在View.h添加宏:afx_msg void OnUpdatePrompt(CCmdUI* pCmdUI);在view.cpp添加消息映射及消息处理函数:ON_UPDATE_COMMAND_UI(ID_INDICATOR_PROMPT, OnUpdatePrompt)#include MainFrm.hvoid CCurveView:OnUpdatePrompt(CCmdUI* pCmdUI) / TODO: Add your command update UI handler code


    注意事项

    本文(实验五 菜单工具栏状态栏程序设计.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开