资源描述:
《windows程序设计实验指导书(2)MFC消息编程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验二、Windows菜单、工具条消息编程实验目的:1、了解windows编程的消息映射机制。2、掌握VC资源编辑器的使用。3、掌握建立菜单和工具条的方法,并能处理菜单与工具条及鼠标消息。实验要求:建立一个windowsSDI(单文档)应用程序,并编辑建立菜单和工具条资源,对菜单和工具条的命令消息进行处理,并尝试右键菜单的添加。程序在窗口中显示一彳亍文字uIli,WelcometoWindowsMFCProgrammingWord!",并能响应"显示控制”菜单屮的关于文字显示控制的子菜单消息。另外通过鼠标消息的响应实现对文字显示在窗口中的位置交互控制。
2、注意在About对话框中加上程序作者信息。实验指导:一、在VC++6.0环境中建立一个单文档工程。1、选择文件菜单屮的new,然后在projects选项下选择MFCAppWizard(exe)项目,如下图,设定好文件路径和工程名称,在下面画面中选择生成一个SDI应用程序,点击完成。2、编译工程文件,观察程序执行效果,并注意分析程序代码屮的消息映射:部分。在View类的己默认生成的函数OnPreparePrinting()中设置如下图所示断点,按F5启动调试工具,执行文件菜单下的打印项,程序会在断点处暂停,选择进入函数(F11)然后进行逐步调试(F10)
3、o跟踪观察MFC程序执行中消息的处理路径和函数调用,理解课堂所讲内容。通过shift+F5屮止调试。///////////////////////////////////////////////////////////////////////////////CExn_Menu_ToolBarUiewprintingBOOLCExn_MenuJoolBarUip讥:OnPreparePrinting(CPrintInFo*plnfo)/defaultpreparationreturnDoPreparePrinting(pInFo);3、下面來给在窗口
4、中显示文字和控制显示添加必要的数据项。为了能够改变窗】I中显示文字的颜色和位置,必须有相应的数据类型保存这些设置,我们将数据加在View类中,在・h和・cpp文件中添加如下内容:头文件(.h)中所加内容:class*View:publicCView//Attributespublic:CStringm_strHello;//显示文字内容intm_nSelColorIndex;〃所选文字颜色在颜色数组中的位置索引(0-3)COLORREFm_nColors[4];//文字颜色数组CPointm_ptStrDisplay;//文字在窗口中的显示位置BOOL
5、m_bVisuable;//文字是否显示的控制源文件(・cpp)屮所加内容:构造函数中添加内容:*View:View()//TODO:addconstructioncodehere//变量的赋值与初始化m_strHello="Hi,WelcometoWindowsMFCProgrammingWorld!";m_nSelColorIndex=0;m_colors[0]=RGB(0,0,0);m_colors[l]=RGB(255,0,0):m_colors[2]=RGB(0,255,0);m_colors[3]=RGB(0,0,255):StrDispl
6、ay.x=150;m_ptStrDisplay.y二100;m_bVisuable=FALSE;}"OnDraW()函数中添加显示文字代码:void*View::OnDraw(CDC*pDC)CExmMenuToolBarDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);//TODO:adddrawcodefornativedatahere〃文字的显示pDC->SetTextColor(m_colors[m_nSelColorIndex]);if(m_bVisuable){_pDC->TextOut(m_ptStrDi
7、splay.x,mjptStrDisplay.y,m_strHello);}4、通过资源编辑器创建控制文字显示的菜单与工具条资源。大概如下图,注意资源ID的命名标准化。文件①編辑⑥查看边帮助电)显示控制c)r•♦・・显示文字@)颜色选择(S)►红色S)•••绵<51••••蓝色口
8、酋旧
9、判®
10、s]U宇
11、Hn・・•・••••・••••••宇■■■■・・■■■■■■■■■■■■■■■MM5、通过Visualstudio环境屮的View菜单下的classWizard(或ctrl+W)添加工具条和菜单项“显示文字”的0N_C0MMAND与0N_C0MMAND_
12、UI消息映射,而通过手工添加菜单子项“颜扈选择”的ON_COMMAND_RANGE与ON_CO