- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
DIB位图的结构*DIB位图的结构*0102BITMAPFILEHEADER结构DIB位映象按列、行组织从最底行开始每行填充到4字节对齐包含到映象位矩阵的偏移量BITMAPINFOHEADERDIB存取函数*SetDIBitsToDevice:按一个位图位显示成一个显示象素或一个打印点显示StretchDIBits:类似于StretchBlt()GetDIBits从一个GDI位图构建DIBCreateDIBitmap:从DIB构建GDI位图CreateDIBSection:创建一个称为DIB段的特殊DIB,返回一个GDI位图句柄32145第四部分MFC文档/视图结构详解*第一章菜单、键盘加速器及属性表*本章的主要内容是菜单和命令路由架构同时介绍:框架、文档和视图的关系命令用户接口更新函数键盘加速器以RichText控件和属性表来介绍主框架窗口*主框架窗口管理菜单条、标题条、工具条、状态条及视图窗口Windows菜单*也可以定义独立的菜单,用户程序负责装载一般由水平菜单列表及附属的弹出式菜单组成一般为框架窗口定义默认的菜单资源,创建时自动装载键盘加速键*加速键:通过把一个组合键和命令ID对应即可02选择菜单命令的快捷方式(定义菜单时字母前导)01命令处理*01应用框架为菜单、加速键、工具条、对话框操作产生的命令消息提供消息路由02路由的顺序如下:命令消息处理--派生类中的命令消息处理命令消息的路由系统是命令消息处理的一条路径类继承树是另一条路径类继承时同时继承了全部命令消息函数和消息映射表项要覆盖父类的命令消息处理,必须添加派生类的对应命令消息函数和消息映射表项更新命令用户接口处理程序*菜单的外观需要根据程序的状态调整空闲的时候菜单第一次显示的时候调用只能处理弹出式菜单项01030204起源于对话框的命令*如果对话框按扭要发送命令消息,其ID必须在0X8000—0XDFFF之间这样按扭产生的消息是可路由的,可以在视图类或其他地方处理可以先在符号表中添加一个符号,指定其值在0X8000—0XDFFF之间,然后将控件ID指定为该ID即可内置框架菜单项*利用AppWizard生成的程序带有一个默认的菜单01菜单的项目根据选择项的不同而不同02对于没有命令处理函数的菜单项,框架自动禁用之03MFC的文本编辑选择*利用TextBox或RichTextBox控件CEditView是基于TextBox的,文本64K以下,不支持混合字体CRichEditView,支持混合字体,大批量文本,主要用于ActiveXCRichEditCtrl,与CRichEditView类似属性表*属性页创建过程创建一系列对话框模板为每个模板生成一个类,基类CPropertyPageClassWizard生成从CPropertySheet中派生的类针对每个页面添加一个数据成员到属性表类中在构造函数中逐一调用AddPage构造属性表的一个对象,然后调用DoModal()属性表的数据交换*一个示例CMenu菜单类-菜单的动态加载*创建菜单资源01020304在程序中创建CMenu对象调用对象的LoadMenu()调用某个窗口对象的SetMenu05使用完成后调用Detach,分离出HMENU句柄,以备再次使用浮动菜单及扩展命令处理程序*使用菜单编辑器新建菜单01在需要的窗口类中映射WM_CONTEXTMENT消息02在消息处理函数中弹出菜单03第二章工具栏和状态栏*控制拦和应用程序框架工具栏是CToolBar的对象,状态栏是CStatusBar的对象,两者都是CControlBar的派生类,CControlBar派生于CWnd类。应用框架负责对象的构造,析构、窗口的创建AppWizard在框架窗口的派生类中创建代码工具拦*工具条位图由一组图形按扭组成,存放在单一文件中工具条按扭的状态:TBSTATE_ENABLED,TBSTATE_PRESSED,TBSTATE_CHECKED工具栏和命令消息工具条按扭一般映射一个菜单项,也可以单独映射工具栏也采用更新命令消息处理(UI)来更新工具提示一个示例状态栏*01040203状态栏的定义在数组indicators中消息行:调用SetPaneTetxt()设置文字自己控制状态栏:用另一个ID替代AFX_IDW_STATUS_BAR,还要:替换创建函数,映射视图中关闭和打开状态栏的消息ID_VIEW_STATUSBAR一个示例IE重组控件
文档评论(0)