资源描述:
《VC教案72_资源使用》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、课题:在MFC中创建应用程序的资源目的耍求:掌握单文档中菜单的创建与使用掌握快捷键,加速键的创建与使用掌握工具条的创建与使用学习重点难点:菜单,快捷键,加速键,工具条,的创建与使用学习难点:菜单,快捷键,加速键,工具条,的创建与使用教学课时:教学方法:教学内容与步骤:在Windows的可执彳『文件中,资源是独立于代码的,使用单独的ResourceCompiler进行编译,并嵌入到可执行文件中。在编程过程中,代码是可复用的,资源也是可复用的,通过资源的“导入”和“导出”功能来实现资源的可复用。获取资源的一个样例查看Windows(98/2000
2、)系统中口带的纸牌游戏中的图片资源:c:Windowscards.dll或c:WINNTSystem32资源的应用:菜单,快捷键,加速键,工具条菜单资源的使用:1,创建菜单资源并设置丿肉性,2,添加菜单响应函数或消息处理函数例1,创建一个基于单文档结构的应用程序,在视图中显示一行字符串“HelloWorld!”,通过建立包含“显示”和“颜色选择”两个菜单项的“操作”菜单來控制字符串,菜单项“显示”用以控制字符串的显示与否,菜单项“颜色选择”屮包含一个级连菜单,内容为“红”、“绿”和“蓝”三个菜单项。—
3、口
4、X
5、岂MyRes.r匚-ID
6、RMAINFRAME(Menu)文件(巳查看(巴操作[Q]帮助(tO(显示Ctrl4-W颜色选择•••••••••••••••••••••••红色[BJ绿色[⑥蓝色[因菜单ID:弹出菜单不须另外设置ID,命令菜单设置ID_OPER_REDID_OPER_GREEN1D_OPER_BLUEID_OPER_SHOW变量定义:程序运行需要的变量・运行机制有关在My_ResView.h中的classCMy_ResView:publicCview屮的public处加入如下声明:COLORREFm_nColors[3];〃用户可选颜色数组DWORDm_n
7、ColorIndex;//当前所选颜色索引CStringm_strShow;//显示的内容BOOLm_bShow;//是否显示变量初始化:在CMy_RcsVicw::CMy_RcsVicw()中初始化成员变虽:m_nColors[0]=RGB(255,0,0);m_nColors[l]=RGB(0,255,0);m_nColors[2]=RGB(0,0,255);m_nColorIndex=0;m_strShow="HelloWorld!'1;m_bShow=TRUE;绘图输出:在voidCMy_ResView::OnDraw(CDC*pDC
8、)中加入如下代码绘制字符串:if(m_bShow){pDC->SetTextColor(m_nColors[m_nColorIndex]);//设置输出字符串颜色pDC->TextOut(100,100,m_strShow);〃输出字符串}若编译运行程序,可看到程序输出一行红色的字符串,但颜色设置菜单项还没有起作用如何通过菜单项来控制程序:在介绍菜单项的响应时,必须先了解儿个消息响应机制:COMMAND消息的响应:执行菜单命令UPDATE_COMMAND_UI消息的响应:改变菜单状态,如选中或不选中,可用不可用等ON_COMMAND_RANG
9、E对COMMAND消息的响应ON_UPDATE_COMMAND_UI_RANGE对UPDATE_COMMAND_UI消息的响应(1)COMMAND消息的响应:执行菜单命令添加了对COMMAND消息的响应Z后,My_ResView.h发生如下变化://Generatedmessagemapfunctionsprotected://{{AFX_MSG(CMy_ResView)afx_msgvoidOnOperShow();//}}AFX_MSG在My_ResView.cpp文件中,读者会看到1D_OPER_SHOW对应的COMMAND消息的绑定,
10、代码如下:BEGIN_MESSAGE_MAP(CMy_RcsVicw,CVicw)//{{AFX_MSG_MAP(CMy_ResView)ON_COMMAND(ID_OPER_SHOW,OnOperShow)//}}AFX_MSG_MAP//StandardprintingcommandsON_COMMAND(ID_FILE_PRINT,CVicw::OnFilcPrint)ON_COMMAND(ID_FILE_PRINT_DIRECT,CView::OnFilePrint)ON_COMMAND(1D_F1LE_PR1NT_PREVIEW,C
11、View::OnFilePrintPreview)END_MESSAGE_MAP()在My_ResView・cpp文件的最后加入如卜'代码:voidCMy_ResV