第2讲SDK与MFC编程基础要点分析.ppt

  1. 1、本文档共84页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
(2)WM_RBUTTONDOWN: 鼠标右键按下,添加CPline对象到数组中。 在OnDraw中绘制:CHelloView.cpp 文档类中修改Serialize(...)函数,实现从文件打开与保存 修改光标: (1)创建光标资源:资源视图-Insert Resource-Cursor (2)载入光标资源: //载入自定义光标资源 HCURSOR LoadCursor(int resource_id); //载入系统定义的光标 HCURSOR LoadStandardCursor(int resource_id); (3)重载消息函数OnSetCursor(...):如果光标不在客户区内,缺省的实现将光标设为箭头;如果是在客户区内,则将光标设为注册的类光标。 SetClassLong(GetSafeHwnd(), GCL_HCURSOR, (LONG)hCursor)//设置当前窗口光标 连接线的动态显示:在绘制过程中,动态显示连接线。以绘制直线为例。在折线绘制模式下: (1)第1个鼠标点下,不显示任何线。 (2)鼠标移动中,显示上一次鼠标点与当前鼠标位置直线 (3)鼠标移动中,只能显示一条动态线,显示当前动态线之前,需擦除上一次显示的动态线。 //定义两个点分别记录第1次和第2次光标位置 CPoint m_p1,m_p2; //开始绘制前,为两点赋初始状态值 m_p1 = m_p2 = CPoint(-1,-1); //鼠标左键按下,m_p1赋值m_p1 = point; 移动时,判断m_p1是否为空,不为空开始绘制当前连接线 MoveTo(m_p1); LineTo(point); //判断m_p2是否为空,不为空则擦除上次的连接线 m_p1至m_p2; 绘制完后保存当前连接线留待下次擦除 m_p2 = point; 擦除的实现:采用异或绘图模式。 异或模式:绘制中,将当前画笔颜色与屏幕颜色进行计算。然后用计算后的颜色作为绘制颜色。同一种颜色在屏幕上绘制两次则实现擦除。 设置绘图模式:CDC:SetROP2(int mode); R2_COPYPEN 直接模式R2_NOTXORPEN 异或模式 MFC对话框 (1)对话框资源:面板和控件。 (2)对话框类:CDialog 静态文本StaticText 组合框GroupBox 复选框CheckBox 下拉框ComboBox 滚动条Scroll Bar Tree Control树形控件 微调按钮Spin 滑动条Slider 列表控件List Control 标签页Tab Control Picture图片 EditBox编辑框 Button按钮 Radio单选钮 List Box列表框 VScrollBar垂直滚动条 Progress进度条 对话框应用例子 通过菜单,弹出对话框窗口,对当前绘制的线型(实线|虚线|点划线)、粗细和颜色进行设置 默认按钮 默认按钮 组合框 静态文本 输入框 下拉框 Picture CStatic控件 对话框应用例子 (1)创建对话框资源及控件 (2)创建对话框类 class CLineSetDlg : public CDialog 映射控件变量:通过ClassWizard类向导,把控件和变量关联起来 对话框资源ID 颜色框控件 下拉框控件 线宽度 两种变量类型:值类型,控件类型 对话框应用例子 (3)映射对话框消息函数 BOOL CLineSetDlg::OnInitDialog() 添加到下拉列表 (4)映射颜色框控件消息函数 需要先修改控件ID名称(默认为IDC_STATIC) 修改控件Styles属性:勾选Notify 映射Event消息:BN_CLICKED (5)添加OK按钮命令函数 直接双击按钮添加消息函数并修改 重要的对话框函数UpdateData(...) UpdateData(false):将值传递至(控件)界面 UpdateData(true):从界面获取值至变量 (6)菜单调用对话框 在VIEW类中添加当前线型变量HelloView.h 映射菜单命令:OnLineSet() (7)修改线OnDrawLine()菜单消息函数 修改CPline::Draw(...)函数 修改CPline::Serialize(...)函数 练习,完善绘图程序。 完成折线,矩形,圆椭圆等的绘制; 设置不同图形的颜色,线条,填充等。 WINDOWS位图 位图类CBitmap (1)从资源载入位图 CBitmap bit; bit.LoadBitmap(IDB_BITMAP1);//资源ID (2)从文件载入位图 (3)获取位图大小 (4)创建内存设备 (5)使用内存块移动 窗口起始位置、宽度、高度 内存起始位置 图像的宽度和

文档评论(0)

奇缘之旅 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档