第5章 文本与字体 2018/11/14 面向对象与可视化 程序设计 --Visual C++ 编程 主讲教师: 唐 龙教授 (计算机科学与技术系) 黄维通博士 (计算机与信息管理中心) 清 华 大 学 2001年2月 2018/11/14 Huang Weitong.

Slides:



Advertisements
Similar presentations
第六 章数据库访问页 6.1 数据访问页视图 6.2 创建数据访问页 6.3 编辑数据访问页 6.4 查看数据访问页 退出.
Advertisements

项目2 字符格式和段落编排 2017年3月7日6时54分.
插入超链接 高邮市第一实验小学 范太国 任务一:设置文本超链接 任务一:设置文字超链接 步骤:1、选定文字并右击,在快捷菜单 中选择“超链接”命令。 2、在弹出的对话框中选择左侧“链接到:”中的“本文档中的位置(A)”项,在“请选择文档中的位置(C):”中选择需要链接的幻灯片,单击“确定”按钮。
PRESENTED BY OfficePLUS
Oracle数据库 Oracle 子程序.
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
在PHP和MYSQL中实现完美的中文显示
走进Word 认识Word2010的工作界面 计算机专业 赵德玲.
Visual C++ Windows Programming
第八章 菜单设计 §8.1 Visual FoxPro 系统菜单 §8.2 为自己的程序添加菜单 §8.3 创建快捷菜单.
第5章 文本与字体 2018/12/3 面向对象与可视化 程序设计 --Visual C++ 编程 主讲教师: 唐 龙教授 (计算机科学与技术系) 黄维通博士 (计算机与信息管理中心) 清 华 大 学 2001年2月 2018/12/3 Huang Weitong.
简要回顾 了解课程体系、课程目的和主要内容 掌握Windows编程涉及的一些主要概念 DOS程序和Windows程序的主要区别 窗口和程序
第5章 文本与字体 2018/12/4 面向对象与可视化 程序设计 --Visual C++ 编程 主讲教师: 唐 龙教授 (计算机科学与技术系) 黄维通博士 (计算机与信息管理中心) 清 华 大 学 2001年2月 2018/12/4 Huang Weitong.
第1章 Windows应用程序框架的 创建与消息处理
走进编程 程序的顺序结构(二).
辅导课程六.
MFC WinSock类的编程 为简化套接字网络编程,更方便地利用Windows的消息驱动机制,微软的基础类库(Microsoft Foundation Class Libary,简称MFC),提供了两个套接字类,在不同的层次上对Windows Socket API函数进行了封装,为编写Windows.
Zhao4zhong1 (赵中) C语言指针与汇编语言地址.
Zhao4zhong1 (赵中) C语言指针与汇编语言地址.
第一讲: 基本流程(1).
第4章 MFC编程 4.1 MFC概述 4.2 MFC和Win CObject类 4.4 消息映射的实现
第5章 文本与字体 2019/2/15 面向对象与可视化 程序设计 --Visual C++ 编程 主讲教师: 唐 龙教授 (计算机科学与技术系) 黄维通博士 (计算机与信息管理中心) 清 华 大 学 2001年2月 2019/2/15 Huang Weitong.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
第10章 高级用户界面设计 10.1 菜单设计 10.2 通用对话框 10.3 图像列表框控件 10.4 树形视图控件
Windows 7 的系统设置.
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
PRESENTED BY OfficePLUS
第七章 操作符重载 胡昊 南京大学计算机系软件所.
Gzip编译及调试 曹益华
第十五讲 MFC与消息处理 MFC简介 Windows编程机制 MFC应用程序框架原理 创建应用程序框架 消息及其分类 消息映射机制
Visual Studio 2010简捷入门.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C语言程序设计 主讲教师:陆幼利.
第5章 文本与字体 2019/4/9 面向对象与可视化 程序设计 --Visual C++ 编程 主讲教师: 唐 龙教授 (计算机科学与技术系) 黄维通博士 (计算机与信息管理中心) 清 华 大 学 2001年2月 2019/4/9 Huang Weitong.
第10章 在MFC中创建应用程序的资源.
直接扫描保存成TIF格式, 其他图片格式用Windows XP自带的 Windows图片与传真查看器打开
第十二讲 菜单、工具栏和状态栏 严宣辉 数学与计算机科学学院
《面向对象程序设计与Visual C++6.0教程》
第1章 c++概述 1.1 C++语言的简史及特点 1.2 简单的C++程序 1.3 C++语言的基本组成
Visual C++ Windows Programming
PRESENTED BY OfficePLUS
姚金宇 MIT SCHEME 使用说明 姚金宇
项目二:HTML语言基础.
本节内容 Win32 API中的宽字符 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第5章 文本与字体 2019/4/25 面向对象与可视化 程序设计 --Visual C++ 编程 主讲教师: 唐 龙教授 (计算机科学与技术系) 黄维通博士 (计算机与信息管理中心) 清 华 大 学 2001年2月 2019/4/25 Huang Weitong.
第4章 Excel电子表格制作软件 4.4 函数(一).
1 月 日 一 二 三 四 五 六 元旦 11/20 11/21 11/22 11/23 11/ /25 11/26 11/27 11/28 11/29 11/30 12/ /2.
iSIGHT 基本培训 使用 Excel的栅栏问题
PPT中视频的播放控制 苏州电教馆在线课程培训教程:PPT2003教程   制作:赵立锋 更多教程请见:
第六章 素材的加工与处理 第13讲 用GoldWave进行音频的截取、合并、淡入淡出操作
_13简单的GDI绘图操作 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
Visual Basic程序设计 第13章 访问数据库
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
Python 环境搭建 基于Anaconda和VSCode.
MFC控件 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang 官网地址:
本节内容 动态链接库 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
YOUR SUBTITLE GOES HERE
本课内容 接下来的几节课,我们要利用C语言开发一些游戏 本节课开发一个俄罗斯方块游戏 游戏规则.
第8章 创建与使用图块 将一个或多个单一的实体对象整合为一个对象,这个对象就是图块。图块中的各实体可以具有各自的图层、线性、颜色等特征。在应用时,图块作为一个独立的、完整的对象进行操作,可以根据需要按一定比例和角度将图块插入到需要的位置。 2019/6/30.
WEB程序设计技术 数据库操作.
使用ADO访问数据库 李宝智 BonizLee 课程 10564A
创建、启动和关闭Activity 本讲大纲: 1、创建Activity 2、配置Activity 3、启动和关闭Activity
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
第六讲 酒店客房管理系统(二) 教育部“十二五”职业教育国家规划教材
培训课件 AB 变频器的接线、操作及参数的备份 设备动力科.
熟悉VC++开发环境.
04 03 add your text. add your text. add your text. add your text add your text. add your text. add your text. add your text. add your text add your text.
手工编写第一个 MFC程序 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang 官网地址:
Presentation transcript:

第5章 文本与字体 2018/11/14 面向对象与可视化 程序设计 --Visual C++ 编程 主讲教师: 唐 龙教授 (计算机科学与技术系) 黄维通博士 (计算机与信息管理中心) 清 华 大 学 2001年2月 2018/11/14 Huang Weitong

第5章 文本与字体 2018/11/14 第十五章 工具条类及其应用 2018/11/14 Huang Weitong

内容提要 工具条类简介 工具条类控件的应用 2018/11/14

第5章 文本与字体 2018/11/14 §15.1. 工具条类简介 2018/11/14 Huang Weitong

1. 工具条 工具条是图形化的菜单,可更快捷、更有效的命令输入方式。 工具条作为程序的一个资源存放在资源脚本中,在程序运行时才调用。 第5章 文本与字体 2018/11/14 1. 工具条 工具条是图形化的菜单,可更快捷、更有效的命令输入方式。 工具条作为程序的一个资源存放在资源脚本中,在程序运行时才调用。 工具条的标识符在resource.h文件中定义,并与系统菜单、系统图标的ID相同,这样,可以使工具条资源建立后直接链接到主窗口。 Huang Weitong

2. 工具条资源模板 工具条资源模板在工具条资源文件中定义工具条各个按钮和整个工具条的位图,其格式如下: ID TOOLBAR [工具条属性] 像素宽,像素高 BEGIN BUTOON ID1 …... BUTOON IDn END ID ID TOOLBAR [工具条属性] bmp文件名 2018/11/14

2. 工具条资源模板(续) 例如,在名为mytoolbar.rc工具条资源文件中定义的文件操作工具条资源模板如下: IDR_ TOOLBAR TOOLBAR DISCARDABLE 16,15 BEGIN BUTOON ID_FILE_NEW //新建 BUTOON ID_FILE_OPEN //打开 BUTOON ID_FILE_SAVE_AS //另存 SEPERATOR //分隔块 BUTOON ID_SHOW //显示 END IDR_ TOOLBAR TOOLBAR DISCARDABLE “res\toolbar.bmp” 2018/11/14

3.CToolBar类 工具条类CToolBar由控制条类CControlBar派生的,而控制条类CControlBar由CWnd类直接派生的。 CToolBar类有几个兄弟类,都是用来接收某些命令输入并向用户显示状态消息的类,包括: CStatusBar(状态条) COleResizeBar(OLE控制条) CDialogBar(对话条) 在AfxWin.h中定义了CToolBar类。

4. CToolBar类的方法 CToolBar类的方法,包括: 构造方法; 工具条按钮操作方法; 虚拟方法。

创建并初始化工具条对象 (1) Create()函数 BOOL Create ( CWnd* pParentWnd, //指向父窗口的指针 DWORD dwStyle=WS_CHILD|WS_VISIBLE|CBRS_TOP, //风格 UINT nID = AFX_IDW_TOOLBAR //工具条的ID号 ); 例如:CToolBar m_ToolBar=new CToolBar( ); m_ToolBar.Create(this,WS_VISIBLE|CBRS_TOP,0x9100); 风格为“初始可见”, 且置于窗口“顶部” 工具条窗口的ID号 2018/11/14

BOOL LoadToolBar(LPCTSTR lpszResourceName); 加载整型形式定义的资源 加载字符串形式定义的资源 BOOL LoadToolBar(LPCTSTR lpszResourceName); 加载整型形式定义的资源 BOOL LoadToolBar(UINT nIDResource); (3) LoadBitmap()函数 加载字符串形式定义的位图资源 BOOL LoadToolBar(LPCTSTR lpszResourceName); 加载整型形式定义的位图资源 BOOL LoadToolBar(UINT nIDResource); 2018/11/14

重设置工具条风格,例如 (4) SetBarStyle()函数 m_wndToolBar.SetBarStyle 工具条的 大小可变 重设置工具条风格,例如 m_wndToolBar.SetBarStyle (CBRS_TOOLTIPS|CBRS_FLYBY|CBRS_SIZE_DYNAMIC); 光标在按钮上暂停时, 显示工具提示 光标在按钮上暂停时, 显示命令描述 工具条窗口的风格 WS_VISIBLE 使工具条窗口初始可见 CBRS_BOTTOM 初始时将工具条放到窗口底部 CBRS_FLYBY 鼠标光标在按钮上暂停时,显示命令描述 CBRS_NOALIGN 防止控制条在其父窗口改变大小时被复位 CBRS_TOOLTIPS 鼠标光标在按钮上暂停时,显示工具提示 CBRS_TOP 初始时将工具条放在窗口底部 CBRS_SIZE_DYNAMIC 工具条的大小可变 2018/11/14

缺省状况下,CToolBar工具条只能被应用程序所移动。 用户移动工具条,需向工具条及框架窗口发送消息。这可通过调用如下函数实现: (5) 工具条的移动 缺省状况下,CToolBar工具条只能被应用程序所移动。 用户移动工具条,需向工具条及框架窗口发送消息。这可通过调用如下函数实现: CToolBar::EnableDocking 或CFrameWnd::EnableDocking。 这二函数原型均为: void EnableDocking( DWORD dwStyle ); 停靠 风格 对于CFrameWnd 不可用 2018/11/14

调用CWnd::GetStyle获取当时工具条状态,即: DWORD GetStyle( ) const; (6)工具条的显隐控制 调用CWnd::GetStyle获取当时工具条状态,即: DWORD GetStyle( ) const; 若WS_VISIBLE风格的工具条不能用SetStyle( )改变 由于工具条是一个窗口,其显示或隐藏可通过其父类CWnd的成员函数ShowWindow( )来实现。 2018/11/14

第5章 文本与字体 2018/11/14 §15.2. 工具条类的应用 2018/11/14 Huang Weitong

[例15-1]带工具条类的应用程序,其界面标题为MyToolBar,有四个下拉菜单和 “文件”工具条。 “文件”工具条有四个按钮 “N”,“O”,“S”和“sh”。 工具条 “N”,“O”,“S”按钮与 “文件(F)”下拉菜单中几项功能相同; 工具条“sh”按钮与菜单“显示(S)”功能相同,显示一个“这是关于工具条的样例程序”信息窗口; 工具条隐现由“查看”的下拉菜单中“工具条(T)”项控制。

带工具条类的应用程序MyToolBar 的其界面 2018/11/14

应用程序的可视化编程部分 这样在资源文件MyToolbar.rc中增加了一项资源,即一个工具条。 1.对话框中的工具条的设计 选Insert菜单中的Resource。这时,显示Insert Resource窗口。选Toolbar项,单击New按钮。 这样在资源文件MyToolbar.rc中增加了一项资源,即一个工具条。 为IDR_TOOLBAR 设置属性 2018/11/14

2.工具条按钮的编辑 加入工具条按钮 可以利用VC所提供的绘图工具,直接编缉自己的按钮。 若已经存在的图标,作为下一个按钮,应先加入一个 ICON资源,再经拷贝和粘贴,放到Toolbar上。 删除工具条按钮 删除按钮只要把该按钮拖出工具条以外。 分隔工具条按钮 用鼠标将要移动的按钮拖动到工具条上需要的位置。 2018/11/14

N ID_FILE_NEW 建立新文档\n新建 O ID_FILE_OPEN 打开一个现有文档\n打开 3.菜单的编辑 按钮 ID Prompt N ID_FILE_NEW 建立新文档\n新建 O ID_FILE_OPEN 打开一个现有文档\n打开 S ID_FILE_SAVE_AS 以一个新文件名保存\n另存为 sh ID_SHOW 显示一个对话框\n显示 2018/11/14

应用程序的代码编程 1. 给菜单“显示(S)”选项编写代码 (1) 在菜单“显示”上单击右键,在弹出菜单中选ClassWizard命令。 (2) 在Object IDs列表框中选择ID_SHOW项。 (3) 在Messages列表框中选择COMMAND 项是BN_CLICKED。 (4) 单击Add Functtion按钮,接受弹出的窗口中函数名OnShow()。 (5) 这样在ClassWizard窗口的Member functions列表框中增加了成员函数OnShow(),单击Edit Code按钮。Visual C++显示源代码文件(.cpp),并将光标停在函数OnShow()处,等待用户定义函数的内容。 (6) 在函数OnShow ()中输入以下代码: void CMainFrame::OnShow() { AfxMessageBox(”这是关于工具条的样例程序”);//显示对话框 } 2018/11/14

2 添加工具条代码——有三个地方需要添加工具条代码 (1)为类CMainFrame 加入一个成员变量m_wndToolBar,有两种方法。 用Class Wizard进行,在Workspace 窗口的ClassView选项卡中,找到CmainFrame类的标识,点击鼠标的右键,选择Add Member Variable…子菜单,在Variable Type 编辑框中填入CToolBar,在Variable Name编辑框中填入m_wndToolBar, 在Access中选择protected一项。 在头文件 MainFrm.h中直接添加所需的代码,如下这段代码为类CMainFrame加入一个受保护的成员变量m_wndToolBar : class CMainFrame : public CFrameWnd { … protected: // control bar embedded members CToolBar m_wndToolBar;//加入成员变量m_wndToolBar } 2018/11/14

// MainFrm.cpp : implementation of the CMainFrame class (2)在MAINFRAME.CPP文件中加入代码,设置工具条的特性以实现使工具条可见的功能。在CMainFrame的OnCreate函数中加入以下代码 // MainFrm.cpp : implementation of the CMainFrame class int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { … if (!m_wndToolBar.Create(this) || //创建工具条 !m_wndToolBar.LoadToolBar(IDR_TOOLBAR))//引入IDR_TOOLBAR TRACE0("Failed to create toolbar\n"); return -1; //若失败,则给出提示,并返回-1 } 若现在运行程序,则可以看见工具条了。 2018/11/14

(3)更改属性为了使工具条成为可“浮动”工具条,要考虑进行一些其它的编码。仍在MAINFRAME (3)更改属性为了使工具条成为可“浮动”工具条,要考虑进行一些其它的编码。仍在MAINFRAME.CPP文件中,在CmainFrame的OnCreate函数中在刚才加入的代码后面加入以下代码 // MainFrm.cpp : implementation of the CMainFrame class int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { … m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC); //设定工具条的风格为:当鼠标光标在按钮上暂停时,显示工具提示和命令描述,并//设定工具条的大小是可变的。 m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); EnableDocking(CBRS_ALIGN_ANY); DockControlBar(&m_wndToolBar); //实现工具条的移动 } 注意:若希望有两个工具条,只要象刚才那样定义工具条资源并为类CMainFrame加入第二个成员变量m_wndToolBar2,然后添加合适的响应程序代码即可 。 2018/11/14

(第十五章) 完 2018/11/14

第15-16章课后练习题 编写一个具有下拉菜单和工具条单(或多)文档应用程序,菜单包括:“文件”,“绘图”等,工具条含有“直线”,“圆”,“矩形”等绘图按钮。 [注]6月4日前完成 2018/11/14