资源描述:
《38MFC编程实例》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、38MFC编程实例SelectObject(&brushN;第10章VisualC++编程实例;dc.SelectObject(&pen;第10章VisualC++编程实例;brushNew.CreateSolidBrus;第10章VisualC++编程实例;BrushNew.CreateSolidBrus;第10章VisualC++编程实例;图10-22;第SelectObject(&brushNew);第10章VisualC++编程实例dc.SelectObject(&penNew);dc.Rectangle(20,
2、20,200,180);}voidCMenuTestView::OnCircleCommand(){//TODO:Addyourcommandhandlercodehere(在这里加样命令处理代码)CClientDCdc(this);CBrushbrushNew;CPenpenNew;第10章VisualC++编程实例brushNew.CreateSolidBrush(RGB(0,0,255));penNew.CreatePen(PS_SOLID,1,RGB(255,0,0));dc.SelectObject(&brus
3、hNew);dc.SelectObject(&penNew);dc.Ellipse(280,20,460,200);}分析:首先生成1样CclientDC类型白勺对象dc,Cclient继承了设备上下文类CDC。CDC用于指定设备上下文(如窗口客户区、打印机)进行绘图、显示文本等操作,而CclientDC用于在窗口客户区画图和显示文本。第10章VisualC++编程实例BrushNew.CreateSolidBrush()shi用于设置画刷白勺颜色,penNew.CreatePen()shi用于设置画笔白勺颜色,dc.E
4、llipse()shi画椭圆白勺函数。代码输入完成后,按Ctrl+F5键开始运行,运行结果如图10-22所示。第10章VisualC++编程实例图10-22第10章VisualC++编程实例2)方法二(1)载入菜单白勺工作可拟在CWnd类白勺PreCreateWindow()函数中进行,其原型为virtualBOOLPreCreateWindow(CREATESTRUCT&cs);其中,参数cs白勺类型为CREATESTRUCT。该类型用csCREATESTRUCT于存放建立窗口白勺初始化参数。PreCreateWind
5、ow()函数在窗口创建前被调用,通过重载该函数,可拟设置各种窗口参数,也可拟使用LoadMenu()载入菜单资源。其代码为:cs.hMenu=LoadMenu(NULL,MAKEINTRESOURCE(IDR_mAINMENU));第10章VisualC++编程实例(2)为每样菜单选项添加消息映射WM_COMMAND()和消息处理成员函数。例10.3在窗口中显示1样位图文件,设计1样菜单,使图像能放大、缩小和正常显示。#include#include"resource.h"//框架窗口类classCM
6、yWnd:publicCFrameWnd{第10章VisualC++编程实例CBitmapm_Bitmap;floatm_fTimes;intm_nHeight;intm_nWidth;public:CMyWnd();BOOLPreCreateWindow(CREATESTRUCT&cs);protected:第10章VisualC++编程实例afx_msgvoidOnShrink();afx_msgvoidOnBestFit();afx_msgvoidOnZoomOut();afx_msgvoidOnPaint();D
7、ECLARE_MESSAGE_MAP()};//消息映射BEGIN_MESSAGE_MAP(CMyWnd,CFrameWnd)ON_WM_PAINT()第10章VisualC++编程实例ON_COMMAND(ID_SHRINK,OnShrink)ON_COMMAND(ID_BESTFIT,OnBestFit)ON_COMMAND(ID_ZOOMOUT,OnZoomOut)END_MESSAGE_MAP()//主窗口类白勺成员函数CMyWnd::CMyWnd(){BITMAPBM;m_Bitmap.LoadBitmap(I
8、DB_BITMAP1);//载入位图资源第10章VisualC++编程实例m_Bitmap.GetBitmap(&BM);//读位图信息m_nWidth=BM.bmWidth;m_nHeight=BM.bmHeight;m_fTimes=1.0;}//装入菜单BOOL&cs){CMyWnd::PreCreateWin