- 1、本文档共53页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
WINDOWS采用的消息处理机制也交给了程序框架,我们不必担心如何使这些消息和代码联系起来 . WINDOWS定义好了一些消息,当窗口被创建时系统就会发送WM_CREATE消息. 当点击鼠标左键时便系统会发送WM_LBUTTONDOWN消息 当用户按下键盘时系统会发送WM_CHAR消息 当用户关闭窗口时系统会发送WM_CLOSE消息 当用户进行菜单项选择或单击按钮时系统回发送WM_COMMAND消息 什么都不做系统还会发送WM_TIMER消息 WINDOWS提供通用的图形设备接口(GUI),我们通过调用(GDI)函数和硬件打交道,不必理会设备环境,WINDOWS会自动将设备环境结构映射到相应的物理设备,这就是设备无关性。 Developer Studio创建的相关中间文件 APS? - 支持ResourceView Developer Studio创建的相关中间文件 MAK - 外部的创建文件 MFC 特点 ◎MFC是C++的Microsoft Windows API,如果想要开发WINDOWS的应用程序当然VC/MFC是开发环境的首选。 最简单的MFC例子”Hello,World” 最简单的MFC例子”Hello,World” 最简单的MFC例子”Hello,World” MFC程序中的元素 MFC程序中的元素 MFC程序中的元素 MFC程序中的元素 MFC的消息映射 MFC的消息映射 MFC 视图 MFC 视图 MFC 视图 MFC 视图 MFC 资源文件 MFC 资源文件 MFC编译模式 MFC编译模式 MFC基本事件处理 MFC基本事件处理 MFC基本事件处理 MFC基本事件处理 MFC基本事件处理 MFC基本事件处理 MFC基本事件处理 MFC映射模式 MFC映射模式 MFC映射模式 MFC映射模式 MFC映射模式 MFC映射模式 MFC映射模式 MFC映射模式 MFC映射模式 MFC映射模式 MFC映射模式 WM_DESTROY 在Windows发送WM_CLOSE消息后,紧接着会 发送WM_DESTROY消息,虽然窗口已经Close 但实际上并没有完全清除,在任务管理器中还 可以看见应用程序的进程(我想很多木马或病毒 都是无窗口的程序,它们的做法是生成了已经活动 状态的窗口但不显示出来),利用这个消息控制 函数便可以对依赖于当前窗口存在的东西做清除 工作,不过一定要注意,应该调用基类的 OnDestroy函数,而不能在用户自己的视图的 OnDestroy函数中终止窗口的析构过程,终止 析构过程应该在OnClose函数中。 在窗口显示图形,更准确的说是在窗口指定位置 显示图形或文字,我们使用的坐标单位是象素, 称之为设备坐标。 pDC-Rectangle(CRect(0,0,200,200)); 画一个高和宽均为200个象素的方块,因为采用 的是默认的MM_TEXT映射模式,所以在设备环境 不一样时,画的方块大小也不一样,在1024*768 的显示器上看到的方块会比640*480的显示器上 的小(在不同分辨率下的屏幕象素), 在输出到打印机时也会有类似的情况发生。 如何做才能保证在不同设备上得到大小一致的 方块或者图形、文字呢? 需要进行模式映射选择,来转换设备坐标 和逻辑坐标。 Windows提供了以下几种映射模式: MM_TEXTMM_LOENGLISHMM_HIENGLISHMM_LOMETRICMM_HIMETRICMM_TWIPSMM_ISOTROPICMM_ANISOTROPIC MM_TEXT 默认的映射模式,把设备坐标被映射到象素。 x值向右方向递增;y值向下方向递增。 坐标原点是屏幕左上角(0,0)。 可以通过调用CDC的SetViewprotOrg和 SetWindowOrg函数来改变坐标原点的位置。 void CMyView::OnDraw(CDC * pDC){??????pDC-Rectangle(CRect(0,0,200,200)); //全部采用默认画一个宽和高为200象素的方块} void CMyView::OnDraw(CDC * pDC){??????pDC-SetMapMode(MM_TEXT); //设定映射模式为MM_TEXT??????pDC-SetWindowOrg(CPoint(100,100)); //设定逻辑坐标原点为(100,100)??????pDC-Rectangle(CRect(0,0,200,200));//*** //画一个宽和高为200象素的方块
您可能关注的文档
最近下载
- 书院商业计划书.doc
- 人教版小学数学四年级上册期末测试卷+答题卡 .pdf VIP
- 动画手翻书苏教版小学一年级上册劳动教育PPT课件.pptx VIP
- 广州九区联考2023-2024学年高一上学期期末试卷含答案.pdf
- 2023-2024学年广东省深圳市光明区公明中学英语九年级第一学期期末监测模拟试题含解析.doc VIP
- 小学五年级上册数学书习题集(人教版).pdf
- 从创意到创业智慧树知到期末考试答案章节答案2024年湖南师范大学.docx
- 大白兔奶糖广告策划方案.ppt VIP
- 光伏发电投资项目计划书.pptx
- 2021-2022学年北京市朝阳区部编版小学六年级上期末考试语文试卷(原卷版和解析版).doc VIP
文档评论(0)