如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第一章MFC编程基础§1MFC基础知识复习示例:CatchMe1.1分析仅一只猴子的情形设计过程1.2多只猴子?如何给程序添加对话框主程序与对话框的数据交换如何管理数量变化的数据对象动态数组§2自定义类示例:对多猴程序的改进添加新类voidCMonkey::setWidth(intwidth){w=width;}voidCMonkey::setHeight(intheight){h=height;}voidCMonkey::setPosition(){x=rand()%600;y=rand()%500;}boolCMonkey::IsPointIn(CPointpt){CRectrect;rect.SetRect(x,y,x+w,y+h);if(rect.PtInRect(pt))returntrue;elsereturnfalse;}在主程序中使用新类动态管理数据的另一种方法:链表视图类成员变量给主程序添加菜单给主程序添加消息响应函数添加设置猴子数量对话框建立对话框与主程序之间的联系开始游戏显示程序时钟消息处理左键按下事件消息配套代码说明§3自定义MFC风格3.1游戏风格的界面工具栏/状态栏classCMainFrame:publicCFrameWnd{public:virtual~CMainFrame();protected:CStatusBarm_wndStatusBar;//状态栏CToolBarm_wndToolBar;//工具栏protected:afx_msgintOnCreate(LPCREATESTRUCTlpCreateStruct);intCMainFrame::OnCreate(LPCREATESTRUCTlpCreateStruct){if(CFrameWnd::OnCreate(lpCreateStruct)==-1)return-1;if(!m_wndToolBar.CreateEx(this,TBSTYLE_FLAT,WS_CHILD|WS_VISIBLE|CBRS_TOP|CBRS_GRIPPER|CBRS_TOOLTIPS|CBRS_FLYBY|CBRS_SIZE_DYNAMIC)||!m_wndToolBar.LoadToolBar(IDR_MAINFRAME)){return-1;}if(!m_wndStatusBar.Create(this)||!m_wndStatusBar.SetIndicators(indicators,sizeof(indicators)/sizeof(UINT))){return-1;}m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);EnableDocking(CBRS_ALIGN_ANY);DockControlBar(&m_wndToolBar);return0;}如何去掉工具栏菜单栏去掉菜单去掉标题栏WindowsStylesWS_MINIMIZEBOXCreatesawindowthathasaMinimizebutton.WS_OVERLAPPEDCreatesanoverlappedwindow.Anoverlappedwindowusuallyhasacaptionandaborder.WS_OVERLAPPEDWINDOWCreatesanoverlappedwindowwiththeWS_OVERLAPPED,WS_CAPTION,WS_SYSMENU,WS_THICKFRAME,WS_MINIMIZEBOX,andWS_MAXIMIZEBOXstyles.WS_SIZEBOXCreatesawindowthathasasizingborder.SameastheWS_THICKFRAMEstyle.WS_SYSMENUCreatesawindowthathasaControl-menuboxinitstitlebar.Usedonlyforwindowswithtitlebars.WS_THICKFRAMECreatesawindowwithathickframethatcanbeusedtosizethewindow.WS_VISIBLECreatesawindowthatisinitiallyvisible.WS_VSCROLLCreatesawindowthathasaverticalscrollbar.3.2大小固定的界面ModifyStyle()实现PreCreateWindow()中实现我们在PreCreateWindow()