- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 简单的实例讲解
第4章 简单的实例讲解
贾澎涛
pengtao.jia@
实例1 多文档应用程序
? 编写一个多文档应用程序Mymdi,程序
运行后在客户区窗口显示信息“这是一个
多文档程序!”
? 步骤参看课本P159
? 在视图窗口显示,须在视图类的OnDraw
函数中添加代码。
(1)利用MFC AppWizard创建一个多文档
应用程序Mymdi。
(2)在视图类的OnDraw函数中添加如下
代码:
pDC-TextOut(50,10,这是一个多文档
程序!);
实例2 菜单设计
? 编写一个单文档应用程序DrawCoin,为
程序添加一个“画硬币”主菜单,并在其
中添加“增加硬币”和“减少硬币”两个菜单
项。
? 步骤参见课本P162~P169
1.实现画硬币功能
(1)用MFC AppWizard创建SDI应用程序DrawCoin。
(2)在项目工作区的ResourceView页面中选择Menu并
展开,为程序添加一个主??单“画硬币”,并为其添加
俩个子菜单项“增加硬币(A)\tCtrl+A”,ID为
ID_COIN_ADD,“减少硬币(S)\tCtrl+B”,ID为
ID_COIN_SUB
(3)为文档派生类CDrawCoinDoc添加一个类型为int,属性
为public的成员变量m_nCoins。
(4)利用ClassWizard为文档类重载虚函数
DeleteContents,添加如下代码:
m_nCoins=0; //初始化成员变量
(5)修改OnDraw函数,根据m_nCoins的值画出指定个数
的硬币。
for(int i=0;ipDoc-m_nCoins;i++)
{
int y=200-10*i;
pDC-Ellipse(200,y,300,y-30);
//用两个偏移的的椭圆表示一枚硬币
pDC-Ellipse(200,y-10,300,y-36);
}
(6)利用ClassWizard为菜单项添加命令消息处理函数,添
加到文档类中,并添加如下代码:
void CDrawCoinDoc::OnCoinAdd()
{
// TODO: Add your command handler code here
m_nCoins++;
UpdateAllViews(NULL);
}
void CDrawCoinDoc::OnCoinSub()
{
// TODO: Add your command handler code here
if(m_nCoins0) m_nCoins--;
UpdateAllViews(NULL);
}
(7)编译、连接运行。
2. 添加更新命令用户界面消息处理函数
? 命令更新机制:在程序显示一个菜单前,先
检查该菜单的所有条件,再决定如何显示该菜
单。
? ON_UPDATE_COMMAND_UI 宏:负责将
用户界面元素和命令更新程序连接起来。
? CCmdUI(参看MSDN)
? (1)利用ClassWizard为ID_COIN_SUB添加更新命令用户界面
UPDATE_COMMAND_UI的消息处理函数,添加到文档类,添
加如下代码:
void CDrawCoinDoc::OnUpdateCoinSub(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if(m_nCoins1)
pCmdUI-Enable(FALSE); //禁止(变灰)
else
pCmdUI-Enable(TRUE);
}
3.完善DrawCoin的快捷键功能
? 在形目工作区ResourceView页面展开
Accelerator,为菜单项添加快捷键。
4. 为DrawCoin添加弹出式菜单
方法一:
(1)打开ClassWizard,为视图类添加消息
“WM_CONTEXTMENU”。
(2)在系统生成的消息处理函数中添加如下
代码:
void CDrawCoinView::OnContextMenu(CWnd* pWnd, CPoint point)
{
// TODO: Add your message handler code here
CMenu menuPopup; //声明菜单对象
您可能关注的文档
- 清代宫廷后妃便服赏鉴——以沈阳故宫博物院.pdf
- 深圳欧纶变频器说明书.pdf
- 润扬变频器RY-G说明书97页201202版.pdf
- 清华大学美术学院考博笔记内部资料参考书.pdf
- 清明ppt.ppt
- 清宫马褂和坎肩赏鉴———以沈阳故宫藏品为例.pdf
- 渔夫和金鱼的故事2.ppt
- 清偿合伙债务与合伙人个人债务的先后顺序.pdf
- 温州市直四校协作体2014学年第一学期期中考试(最终定稿).pdf
- 游击营销案例.pdf
- 《通用机械设备检修》 课件 刘庆才 part1 起重机.pptx
- 自媒体运营高级实战教程(抖音版) 课件 第7--13章 口播技术---服务变现.pptx
- 公共卫生科副主任护师医德医风考评表模板.docx
- 汽车综合故障诊断与检测 课件1-4 示波器使用与波形检测分析.pptx
- 汽车综合故障诊断与检测 课件2-6汽车LIN网络系统检测.pptx
- 《深度学习项目案例开发》课件汇总 张明 第1--8部分-深度学习概况 ---Transformer 的自然语言处理应用.pptx
- 智能养老服务机器人结对攻关与场景应用试点项目场景参考;智能养老服务机器人结对攻关与场景应用试点项目申报书(编写提纲).docx
- 《IT技术基础(第二版)》课件 (王华兵) 6.1-6.2 操作系统简介 ---10.3 大数据.pptx
- python数据分析基础教程(第2版)教案 (第7章)pandas数据分析基础.doc
- 房屋维修管理与预算 课件 项目五 房屋其他项目的维修.pptx
文档评论(0)